web-dev-qa-db-ja.com

群れのないdocker-compose秘密

私は群れでdocker secretsを使いたくありません。それが可能であることを発見しました。基本的に、ドッカーはドッカーコンテナー内に/ run/secretsをマウントするだけですが、新しく構築されたドッカーコンテナーに入って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

パスワードは正しく設定されていますか/ファイルに何か問題がありますか?

12
HereHere

わかりましたので、私がしなければならなかったのは削除することです

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

私はそれを修正する方法を見つけようとしますが、本質的に私は自分の質問に答えました。

Docker Swarmを使用せずにシークレットを含む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
        ports:
            - "8888:5432"
secrets:
   db_password:
     file: ./POSTGRES_PASSWORD
6
HereHere