Docker+Go로 인상을 만들면
이번에는 사용 인상을 최대한 줄여보려고 한다.
확인
일단 Go 파일부터 만들어.
package main
import "fmt"
func main() {
fmt.Println("hello")
}
Debian, Alpine의 Docker 이미지를 만들었습니다.FROM <golang:1.16-buster or golang:1.16-alpine>
WORKDIR /go/src/app
ADD . /go/src/app
RUN go build -o /go/bin/app
CMD ["/app"]
이미지 크기
일반적으로 그림을 사용한다면 다음과 같이 상당히 크다
위에서 말한 바와 같이 Alpine의 사이즈도 상당히 크지만 Go의 프로젝트는 지원하지 않는다.
This variant is highly experimental, and not officially supported by the Go project (see golang/go#19938 for details).
해결책
멀티스테이지 build을 간단하게 만들어 드릴게요.
FROM golang:1.16-buster as build
WORKDIR /go/src/app
ADD . /go/src/app
RUN go build -o /go/bin/app
FROM gcr.io/distroless/base-debian10
COPY /go/bin/app /
CMD ["/app"]
실제로 build을 사용하면 이런 느낌이에요.총결산
Docker로 이동할 때 살짝 움직이려고 했는데 Go처럼 인상적이었어요.
곧 도착할 때 멀티스테이지를 꼭 활용하세요.
Reference
이 문제에 관하여(Docker+Go로 인상을 만들면), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/komisan19/articles/45b00df6bfe7ad텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)