докер-сочиняй секреты без роя - PullRequest
0 голосов
/ 12 декабря 2018

Я не хочу использовать секреты докера с роем, и я обнаружил, что это возможно.В основном, docker просто монтирует / запускает / секретирует внутри Docker-контейнера, но когда я захожу во вновь построенный Docker-контейнер и выполняю echo $POSTGRES_PASSWORD_FILE, я получаю путь к моему секретному файлу.

root@94a0f092eeb1:/# echo $POSTGRES_PASSWORD_FILE
/run/secrets/db_password

Вот мой docker-compose.ymlfile

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

Правильно ли установлен мой пароль / Что-то не так с моим файлом?

1 Ответ

0 голосов
/ 13 декабря 2018

Хорошо, все, что мне нужно было сделать, это удалить

volumes:
    - ./postgres:/var/lib/postgresql/data

Я постараюсь выяснить, как это исправить, но по сути я ответил на свой вопрос.

Здесьрабочий пример файла docker-compose.yml с секретами без использования docker swarm:

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
...