/ / criar um usuário no contêiner do Docker postgres - django, postgresql, docker, docker-compose

criar um usuário no contêiner do Docker postgres - django, postgresql, docker, docker-compose

Eu estou tentando criar um aplicativo django no container docker, mas eu não sei como criar um usuário no container postgres que o django usa. Eu acho que é por isso que quando eu começo isso (por docker-compose up --build --force-recreate) me diz database_1 | FATAL: role "my_user" does not exist. O que estou fazendo de errado?

docker-compose.yaml agora parece com:

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

Respostas:

1 para resposta № 1

De você docker-compose.yml Eu diria que você criou com sucesso o usuário my_user em seu banco de dados. Você pode verificar isso executando docker exec -ti project_database_1 psql -U my_user -d django_db no seu host.

Eu sugiro que você dê uma olhada cookiecutter-django. Você pode encontrar uma instalação completa do docker, incluindo o problema resolvido JodyT mencionado sobre o início Django antes de o postgres recipiente está realmente pronto.

É dos autores do livro dois escopos de django que também vale a pena ler.