在postgres docker容器中创建一个用户

时间:2017-10-10 14:50:41

标签: django postgresql docker docker-compose

我正在尝试在docker容器中创建一个django应用程序,但我不知道如何在django使用的postgres容器中创建用户。我猜这就是为什么当我开始它时(docker-compose up --build --force-recreate)它会告诉我database_1 | FATAL: role "my_user" does not exist。 我做错了什么?

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:my_pass@database/django_db"

    ports:
      - 7445:80

1 个答案:

答案 0 :(得分:1)

从您的docker-compose.yml我会说您已在数据库中成功创建了用户 my_user 。您可以在主机上运行docker exec -ti project_database_1 psql -U my_user -d django_db来验证这一点。

我建议你看看cookiecutter-django。你可以在那里找到一个完整的docker设置,包括在Django容器实际就绪之前启动postgres时提到的已解决问题JodyT

这是来自书two scopes of django的作者,这也值得一读。