【发布时间】:2017-10-10 14:50:40
【问题描述】:
我正在尝试在 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
【问题讨论】:
-
尝试清理
/var/lib/postgresql/data目录并重启集群。 -
您的服务可能同时启动,因此 django 会在 progres 数据库创建用户之前尝试连接。 docs.docker.com/compose/startup-order
标签: django postgresql docker docker-compose