Docker+Go로 인상을 만들면

3108 단어 DockerGotech
당신은 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 --from=build /go/bin/app /
CMD ["/app"]
실제로 build을 사용하면 이런 느낌이에요.

총결산


Docker로 이동할 때 살짝 움직이려고 했는데 Go처럼 인상적이었어요.
곧 도착할 때 멀티스테이지를 꼭 활용하세요.

좋은 웹페이지 즐겨찾기