mount=type=secretはビルド時にファイルマウントされる

docker build時にクレデンシャルを利用したい場合は --mount=type=secretを利用する。 これによりクレデンシャル情報がdockerイメージ内に保存されることを避けることができる。

docs.docker.com

# syntax=docker/dockerfile:1
FROM node:alpine
RUN --mount=type=secret,id=SECRET_TOKEN \
  SECRET_TOKEN=$(cat /run/secrets/SECRET_TOKEN) yarn run test

mount=type=secretで指定したidが /run/secrets/以下にファイルマウントされる。このため環境変数として利用したいのであれば変数に格納して利用しないといけない。 /run/secrest/ にマウントするのではなく直接環境変数に展開する方法はないかと思ったら、issueにはリクエストは挙がっているが実装される見込みは今のところなさそう。

github.com