golang multi-stage build에서 scratch를 사용할 때 시간대를 설정하는 방법

2199 단어 5dockerfile도커

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 --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를 사용할 때 조심하십시오.

좋은 웹페이지 즐겨찾기