2017-10-10 6 views
0

docker 컨테이너에서 django 앱을 만들려고하지만 장고가 사용하는 postgres 컨테이너에서 사용자를 생성하는 방법을 모르겠습니다. 나는 그것을 시작했을 때 (docker-compose up --build --force-recreate에 의해) 그것이 database_1 | FATAL: role "my_user" does not exist이라고 말하는 이유가 아닐까 싶습니다. 내가 뭘 잘못하고 있니? 당신의 docker-compose.yml에서postgres 도커 컨테이너에서 사용자 만들기

version: "3.1" 
services: 

    database: 
    image: postgres:9.5 
    environment: 
     POSTGRES_DB: "django_db" 
     POSTGRES_USER: "my_user" 
     POSTGRES_PASSWORD: "my_password" 
     POSTGRES_DATA: /var/lib/postgresql/data/pgdata 
    logging: 
     options: 
     max-size: "10m" 
     max-file: "3" 
    restart: always 
    volumes: 
     - "database:/var/lib/postgresql/data" 
    tmpfs: 
     - "/tmp" 
     - "/run" 
    networks: 
     db-net: 

    django: 
    build: ./ 
    image: django:latest 
    environment: 
     DATABASE_URL: "postgres://my_user:[email protected]/django_db" 

    ports: 
     - 7445:80 
+0

'/ var/lib/postgresql/data' 디렉토리를 지우고 클러스터를 다시 시작하십시오. –

+0

django가 progres 데이터베이스가 사용자를 생성하기 전에 django가 연결을 시도 할 수 있도록 서비스가 동시에 시작될 수 있습니다. https://docs.docker.com/compose/startup-order/ – JodyT

답변

1

당신이 성공적으로 데이터베이스에 사용자 my_user를 만들었다 고 말할 것입니다 :

docker-compose.yaml 지금처럼 보인다. 호스트에서 docker exec -ti project_database_1 psql -U my_user -d django_db을 실행하여이를 확인할 수 있습니다.

cookiecutter-django을 살펴 보시기 바랍니다. postgres 컨테이너가 실제로 준비되기 전에 JodyT에서 시작하여 에 대해 언급 된 해결 된 문제를 포함하여 전체 고정 장치 설정을 찾을 수 있습니다.

도서의 저자이기도 한 two scopes of django은 읽을 가치가 있습니다.

관련 문제