既存のアプリケーションをコンテナ化する際、GitHubからプログラムをクローンするケースがある。このとき、Dockerfileにアカウント名、クレデンシャル/Tokenを記載してしまうとセキュリティ的に問題がある。
これを回避するために、DockerEngine1.9から実装されたbuild-time argumentsの機能を用いる。build-time argumentsを利用することにより、Dockerfileのビルド時にパラメータを設定することができる。
Dockerfile
・・・
# Deploy application
ARG GITHUB_ACCOUNT
ARG GITHUB_CREDENTIAL
RUN git clone -b develop https://$GITHUB_ACCOUNT:$GITHUB_CREDENTIAL@github.com/XXXX/YYYY/ZZZ.git
・・・
以下のコマンドを実行し、コンテナイメージのビルドを行う。
sudo docker build --build-arg GITHUB_ACCOUNT={GitHub Account} --build-arg GITHUB_CREDENTIAL={GitHub Credential/Token} -t gcr.io/{GCP PJ Name}/{Application}:{version} {Dockerfileが含まれるフォルダ}
これでDockerfileにクレデンシャル情報を記載せずに、build時にGitHubからソースをcloneしてアプリを利用することができる。
よりセキュアな方法があるかは引き続き調査を行う。