docker-compose.yml → Dockerfile に変数を渡す方法
↓この記事で使ったネタです![]()
- syslog受信 → S3保存 してくれるDockerコンテナ お手軽セット https://qiita.com/yagrush/items/2fbff71c1c2bf12f7d71
1/2 docker-compose.yml側
buildキーの子要素としてargsキーを追加し、
その下に配列として、渡したい変数名と値を書いていきます。
services:
my-s3access-app:
build:
context: ./app
dockerfile: Dockerfile
args:
- GITHUB_ACC=hogehige
- GITHUB_ACC_PASSWORD=agd82gfo3gfagkaf
・
・
・
2/2 Dockerfile側
ARGコマンドで宣言(キャッチ)すると、それ以降$HOGEで利用可能になります。
FROM golang:1.13
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
RUN echo -e "machine github.com\nlogin $GITHUB_ACC\npassword $GITHUB_ACC_PASSWORD" > ~/.netrc
RUN go mod download
・
・
・
Dockerfileが複数FROM構成のときの注意点
次のFROMコマンドに処理が移るとき引き継がれないので、ARGしなおさないといけません。
ちなみに複数FROMが必要となるのは
[ソースコードをビルドするイメージ]
と
[ビルド結果の実行体だけを配備して実行するためのイメージ]
を分けたい時などですね。
FROM golang:1.13 as base
FROM base as builder
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
RUN echo -e "machine github.com\nlogin $GITHUB_ACC\npassword $GITHUB_ACC_PASSWORD" > ~/.netrc
RUN go mod download
・
・
・
FROM base as scratch
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
・
・
・