DevelopBuf

開発関連雑多メモ

docker-composeでsecretsを設定してcontainerで利用する

概要

docker-composeでビルドプロセスにてsecretsを利用する際にうまく設定できなくてハマったのでメモ

詳細

1. ハマりポイント1 environmentを利用する場合はまずdocker-compose buildするホストで環境変数として設定しておき同じ名前を設定する必要がある。

以下の例だとホスト側の環境変数DB_PASSWORD_OTHER を設定しておく必要がある。 書き方は公式のサンプルと合わせた。 https://docs.docker.com/compose/use-secrets/#advanced

version: '3.8'

services:
  my_app:
    build: 
      context: ./my_app
      secrets:
        - db_password_env
secrets:
  db_password_env:
    environment: DB_PASSWORD_ENV

2. ハマりポイント2 secretsの定義をbuildセクションに記載しないといけない

buildセクションと同階層に記載してしまうとランタイムでのみsecretsが有効になる。buildセクションでネストになるように定義しないといけない。

github.com

成果物

github.com