dockerコンテナにdjangoアプリケーションを作成しようとしていますが、djangoが使用するpostgresコンテナにユーザを作成する方法がわかりません。私はそれが(docker-compose up --build --force-recreate
によって)それを始めるときdatabase_1 | FATAL: role "my_user" does not exist
を私に伝える理由であることを推測する。 私は何が間違っていますか?あなたのdocker-compose.yml
からpostgres dockerコンテナでユーザを作成する
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
'/ var/lib/postgresql/data'ディレクトリを消去してクラスタを再起動してみてください。 –
あなたのサービスが同時に起動している可能性があります。そのため、djangoは、progresデータベースがユーザを作成する前に接続しようとします。 https://docs.docker.com/compose/startup-order/ – JodyT