Докер-сочиняй секреты без роя

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

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

Вот мой docker-compose.yml файл

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

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


person HereHere    schedule 12.12.2018    source источник
comment
Привет! Не уверен, в чем проблема? Чего вы ожидаете от echo $ POSTGRES_PASSWORD_FILE?   -  person Boris    schedule 06.07.2020


Ответы (1)


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

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
person HereHere    schedule 12.12.2018
comment
@stackoverflowed: с точки зрения безопасности не слишком безопасно. Просто хотел узнать, можно ли все это сделать без роя докеров - person HereHere; 21.02.2019
comment
это также означает, что теперь вы можете поместить свой docker-compose.yml в репозиторий git без своего пароля. - person leszek.hanusz; 16.05.2019
comment
Меня интересует концепция. Похоже, то же самое можно сделать с помощью файла .env в .gitignore. Более интересный вопрос - как поделиться этими секретами со своей командой. - person threeve; 21.10.2019
comment
Во всех рассмотренных мною примерах я ни разу не нашел образца секретного файла для пары ключ-значение с несколькими секретами. Возможно ли наличие нескольких параметров в одном секретном файле? - person Jinna Balu; 05.05.2020