Je ne veux pas utiliser les secrets de docker avec swarm et j'ai découvert qu'il était possible de le faire. Fondamentalement, docker monte simplement/run/secrets à l'intérieur du conteneur de docker, mais quand j'entre dans le conteneur de docker nouvellement construit et que je echo $POSTGRES_PASSWORD_FILE
J'obtiens le chemin vers mon fichier secret.
root@94a0f092eeb1:/# echo $POSTGRES_PASSWORD_FILE
/run/secrets/db_password
Voici mon docker-compose.yml
fichier
version: '3.1'
services:
postgres:
image: postgres:9.4
container_name: postgres
environment:
POSTGRES_USER: "db_user"
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
POSTGRES_DB: "my_db"
secrets:
- db_password
volumes:
- ./postgres:/var/lib/postgresql/data
expose:
- 5432
secrets:
db_password:
file: ./POSTGRES_PASSWORD.txt
Mon mot de passe est-il correctement défini/Y a-t-il un problème avec mon fichier?
Ok, donc tout ce que j'avais à faire c'est de retirer
volumes:
- ./postgres:/var/lib/postgresql/data
Je vais essayer de comprendre comment y remédier, mais j'ai essentiellement répondu à ma propre question.
Voici un exemple de travail de docker-compose.yml
fichier contenant des secrets sans utiliser l'essaim de docker:
version: '3.1'
services:
postgres:
image: postgres:9.4
container_name: postgres
environment:
POSTGRES_USER: "db_user"
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
POSTGRES_DB: "my_db"
secrets:
- db_password
ports:
- "8888:5432"
secrets:
db_password:
file: ./POSTGRES_PASSWORD