2017-10-10 144 views
0

我想在docker容器中創建一個django應用程序,但我不知道如何在django使用的postgres容器中創建用戶。我想這就是爲什麼當我開始它(通過docker-compose up --build --force-recreate)它告訴我database_1 | FATAL: role "my_user" does not exist。 我在做什麼錯?在postgres docker容器中創建用戶

docker-compose.yaml現在的樣子:

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數據庫創建用戶之前嘗試連接。 https://docs.docker.com/compose/startup-order/ – JodyT

回答

1

從你docker-compose.yml我要說的是,你已經成功創建了用戶my_user在數據庫中。您可以通過在主機上運行docker exec -ti project_database_1 psql -U my_user -d django_db來驗證。

我建議你看看cookiecutter-django。您可以在那裏找到一個完整的碼頭安裝程序,其中包括解決的問題JodyT,在postgres容器實際準備好之前提到有關啓動Django

它來自two scopes of django這本書的作者,這也值得一讀。

相關問題