> 백엔드 개발 > Golang > 수동 종속성 가져오기가 Go Docker 빌드를 어떻게 최적화할 수 있나요?

수동 종속성 가져오기가 Go Docker 빌드를 어떻게 최적화할 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-10 04:42:12
원래의
162명이 탐색했습니다.

How Can Manual Dependency Fetching Optimize Go Docker Builds?

Docker 빌드 최적화를 위한 종속성을 수동으로 가져오기

Go 프로그래밍 환경에서 go 도구는 일반적으로 종속성 관리 및 설치를 자동으로 처리합니다. 하지만 최적화된 Docker 이미지 빌드의 경우 종속성 설치를 별개의 단계로 분리하는 것이 유리할 수 있습니다.

Go 1.11 이하 버전에서는 전용 명령이 부족하여 이것이 불가능했습니다. 그러나 문제 #26610의 수정 사항에는 go mod 다운로드 명령이 도입되었습니다.

최적화된 Docker 빌드에 이 명령을 활용하려면:

  1. 종속성 매니페스트 복사: go.mod 및 go.sum 파일을 Docker 이미지의 빌드에 복사합니다. context.
  2. go mod download 실행: Docker 빌드 단계 내에서 go mod download를 실행하여 종속성을 수동으로 가져옵니다.

다음은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿