web-dev-qa-db-fra.com

docker-composer des secrets sans essaim

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?

12
HereHere

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
6
HereHere