J'ai pensé à créer un environnement Django avec Docker en me référant à ce qui suit, mais il est resté un peu bloqué, je vais donc le laisser comme mémo. https://docs.docker.jp/compose/django.html
Lorsque j'ai utilisé docker-compose up -d pour le démarrage du conteneur, seul le conteneur DB n'a pas démarré correctement ...
toruchan:~/work/py-work$ docker-compose up -d
Starting pywork_db_1 ...
Starting pywork_db_1 ... done
Creating pywork_web_1 ...
Creating pywork_web_1 ... done
toruchan:~/work/py-work$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------
pywork_db_1 docker-entrypoint.sh postgres Exit 1
pywork_web_1 python3 manage.py runserve ... Up 0.0.0.0:8000->8000/tcp
toruchan:~/work/py-work$ docker-compose logs
Attaching to pywork_web_1, pywork_db_1
db_1 | Error: Database is uninitialized and superuser password is not specified.
db_1 | You must specify POSTGRES_PASSWORD to a non-empty value for the
db_1 | superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".
db_1 |
db_1 | You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
db_1 | connections without a password. This is *not* recommended.
db_1 |
db_1 | See PostgreSQL documentation about "trust":
db_1 | https://www.postgresql.org/docs/current/auth-trust.html
db_1 | Error: Database is uninitialized and superuser password is not specified.
db_1 | You must specify POSTGRES_PASSWORD to a non-empty value for the
db_1 | superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".
db_1 |
db_1 | You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
db_1 | connections without a password. This is *not* recommended.
db_1 |
db_1 | See PostgreSQL documentation about "trust":
db_1 | https://www.postgresql.org/docs/current/auth-trust.html
Apparemment, une erreur se produira si le mot de passe n'est pas défini ...?
Puis je suis venu avec les deux suivants
Je veux juste le lancer dans l'environnement local pour le moment, alors sélectionnez 1 invalidation de mot de passe
Ajoutez une ligne de POSTGRES_HOST_AUTH_METHOD: 'trust'
au fichier docker-compose.yml comme contre-mesure dans le cas de 1.
Dans l'ensemble, ça ressemble à ça
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_HOST_AUTH_METHOD: 'trust'
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
J'aurais dû redémarrer le conteneur avec ça Je définirai le mot de passe correctement plus tard ...
Recommended Posts