Go 프로그래밍 환경에서 go 도구는 일반적으로 종속성 관리 및 설치를 자동으로 처리합니다. 하지만 최적화된 Docker 이미지 빌드의 경우 종속성 설치를 별개의 단계로 분리하는 것이 유리할 수 있습니다.
Go 1.11 이하 버전에서는 전용 명령이 부족하여 이것이 불가능했습니다. 그러나 문제 #26610의 수정 사항에는 go mod 다운로드 명령이 도입되었습니다.
최적화된 Docker 빌드에 이 명령을 활용하려면:
다음은 Docker 다단계의 예입니다. 레이어 캐싱으로 빌드:
FROM golang:1.17-alpine as builder RUN apk --no-cache add ca-certificates git WORKDIR /build # Fetch dependencies COPY go.mod go.sum ./ RUN go mod download # Build COPY . ./ RUN CGO_ENABLED=0 go build # Create final image FROM alpine WORKDIR / COPY --from=builder /build/myapp . EXPOSE 8080 CMD ["/myapp"]
종속성 설치를 분리하면 Docker가 레이어 캐싱을 활용하여 많은 코드 변경 사항은 일반적으로 종속성에 영향을 미치지 않기 때문에 다시 빌드하는 것이 더 효율적입니다.
또한 "Go 개발자 환경 컨테이너화 - 2부" 문서에 설명된 대로 Go 컴파일러 캐시를 활용하여 빌드 시간을 더욱 가속화하는 것을 고려하세요.
위 내용은 수동 종속성 가져오기가 Go Docker 빌드를 어떻게 최적화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!