2023年5月29日月曜日

docker secret を docker-compose で使う方法

docker secret を docker-compose で使う方法

概要

過去に docker secret を使う方法を紹介しました

今回は docker-compose から使ってみます

環境

  • Ubuntu 18.04
  • docker 19.03
  • docker swarm

シークレットファイル作成

  • echo "This is secret.txt" > secret.txt

docker-compose.yml

version: '3.8'
services:
  myapp:
    image: alpine:latest
    secrets:
      - source: my_secret
        target: secret.txt
    command: cat /run/secrets/secret.txt

secrets:
  my_secret:
    file: ./secret.txt

stack deploy

  • docker -H swarm01:2376 stack deploy test -c docker-compose.yml

動作確認

  • docker -H swarm01:2376 service logs test_myapp

シークレットファイルを更新した場合は

再度同じ docker-compose.yml で更新しようとすると以下のようなエラーになります

これはすでに前のシークレット情報で同一名称のシークレットが作成されてしまっているので名前を変更して別のシークレットとして登録する必要があります

failed to update secret test_my_secret: Error response from daemon: rpc error: code = InvalidArgument desc = only updates to Labels are allowed

docker-compose.yml の secret だけ書き換え

version: '3.8'
services:
  myapp:
    image: alpine:latest
    secrets:
      - source: my_secret_v2
        target: secret.txt
    command: cat /run/secrets/secret.txt

secrets:
  my_secret_v2:
    file: ./secret.txt

これで再度 stack deploy をすれば成功します

0 件のコメント:

コメントを投稿