Alpine과 Distroless에서 Go 크로스 컴파일: CGO_ENABLED 결정 트리
(dev.to)
Go 애플리케이션 배포 시 CGO_ENABLED 설정에 따른 Alpine과 Distroless 이미지 선택 전략을 설명하며, CGO 의존성에 맞춘 올바른 베이스 이미지 선택이 런타임 에러를 방지하고 컨테이너 보안 및 운영 안정성을 확보하는 핵심임을 강조합니다.
이 글의 핵심 포인트
- 1CGO_ENABLED=1 설정 시 glibc 의존성으로 인해 Alpine(musl) 환경에서 DNS 오류나 실행 실패 발생 가능
- 2CGO 의존성 확인을 위해 `go list -deps -f '{{if .CgoFiles}}{{.ImportPath}}{{end}}' ./...` 명령어 활용 권장
- 3