>백엔드 개발 >Golang >내 Dockerized Go 웹 앱이 '해당 파일 또는 디렉터리 없음' 메시지와 함께 실패하는 이유는 무엇입니까?

내 Dockerized Go 웹 앱이 '해당 파일 또는 디렉터리 없음' 메시지와 함께 실패하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-16 11:10:13795검색

Why Does My Dockerized Go Web App Fail with

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.