Slide 13
Slide 13 text
GoのDockerfile例
実務ではCOPYでAPI keyやパスワードな
どの秘匿情報をコピーしないように気をつ
けてくださいね!
秘匿情報はAWS secrets managerや環
境変数を用いて設定するのが良さそう
go.modを先にコピーしてgo mod
downloadを実行しているのは2回目以
降のビルドを速くするため. 実行内容が
変わらないところはキャッシュしてくれる.
改善余地: マルチステージビルド
13
# ベースイメージとして golangの1.17.2がインストールされたもの
を使う
FROM golang:1.17.2
# 現在の作業ディレクトリを /workdirに変更する
WORKDIR /workdir
# ホストからgo.modをコピーする
COPY go.mod .
RUN go mod download
# ホストからコマンド実行したディレクトリの中身をすべてコピーす
る
COPY . .
# ビルドする
RUN go build -o docker-train .
ENTRYPOINT ["/workdir/docker-train" ]
Dockerfile