Docker 이미지를 처음부터 빌드할 때 실행 중 오류를 방지하기 위해 정적 바이너리가 필요합니다. 그러나 RUN go build -o /go/bin/myapp 명령은 "해당 파일 또는 디렉터리 없음" 오류와 함께 실패하는 바이너리를 생성할 수 있습니다.
이를 극복하려면 다음 플래그가 필요합니다.
RUN CGO_ENABLED=0 go build -o /go/bin/myapp -a -ldflags '-extldflags "-static"' .
설명:
CGO_ENABLED=0 및 -ldflags '-extldflags "를 모두 사용하는 것이 중요합니다. -static"' 이유:
두 플래그를 모두 사용하면 결과 바이너리가 정적이며 외부 라이브러리에 의존하지 않는지 확인할 수 있습니다.
위 내용은 Go에서 Docker 이미지용 정적 바이너리를 처음부터 어떻게 빌드하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!