Docker 이미지 실행 오류: Go Web App 실행 시 "해당 파일 또는 디렉터리가 없습니다"
최근 생성된 Docker 이미지에 오류가 발생함 실행할 때 "standard_init_linux.go:190: exec 사용자 프로세스로 인해 "해당 파일이나 디렉터리가 없습니다"라는 메시지가 표시됩니다. 이 오류로 인해 Go 웹 애플리케이션이 Docker 컨테이너 내에서 제대로 실행되지 않습니다.
이 오류의 근본 원인은 파일 누락, 스크립트 인터프리터 누락 또는 필수 라이브러리 부족 실행 파일에 있습니다. 이 경우 Go 코드에서 "net" 패키지를 가져오면 libc가 동적으로 연결된 바이너리로 자동 포함됩니다. 이를 확인하려면 바이너리에서 "ldd" 명령을 활용하십시오.
이 문제를 해결하려면 추가 빌드 플래그를 제공해야 합니다.
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
이 플래그는 CGO를 비활성화합니다(Go 컴파일러의 빌드 -C) 지원, 대상 운영 체제 및 아키텍처를 지정하고 정적으로 연결된 바이너리를 생성합니다. 이렇게 하면 필요한 모든 라이브러리가 실행 파일에 포함되어 외부 종속성이 필요하지 않게 됩니다.
Go 빌드 프로세스 중에 이러한 플래그를 통합하면 결과 Docker 이미지에 필수 종속성이 포함되고 오류 메시지가 표시됩니다. 해결되어 Go 웹 애플리케이션이 Docker 컨테이너 내에서 성공적으로 실행될 수 있습니다.
위 내용은 내 Dockerized Go 웹 앱이 '해당 파일 또는 디렉터리 없음' 메시지와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!