golang multi-stage build でscratchを使う際にタイムゾーンを設定する方法
2572 ワード
Dockerfile example
FROM golang:1.14.2-alpine3.11 AS builder
RUN apk --update-cache add tzdata
WORKDIR $GOPATH/src/mypackage/myapp/
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o /go/bin/myapp
FROM scratch
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=builder /usr/local/go/lib/time/zoneinfo.zip /usr/local/go/lib/time/zoneinfo.zip
COPY --from=builder /go/bin/myapp /go/bin/myapp
ENV TZ=Asia/Tokyo
ENTRYPOINT ["/go/bin/myapp"]
ルートCA証明書が必要な場合は上記に加えて以下をCOPYする
COPY --from=build-stage /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
-ldflags="-w -s"
-w
DWARFシンボルテーブルを省く
DWARF生成を無効にし、ビルドプロセス中にDWARFシンボルテーブルを省く
-s
シンボルテーブルとデバッグ情報を省く
実行ファイルをビルドするときに、シンボルテーブルとデバッグ情報を省く
今回はバイナリをダイエットさせるために上記のオプションを指定した
参考:
The Go Programming Language Command link
参考になった記事
GoとDockerでscratchを使うときに気をつけること
Author And Source
この問題について(golang multi-stage build でscratchを使う際にタイムゾーンを設定する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/fuubit/items/f432f16d1a356e27749e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .