> 백엔드 개발 > Golang > Go 웹 앱에서 Docker의 'standard_init_linux.go:190: exec 사용자 프로세스로 인해 \'해당 파일 또는 디렉터리가 없습니다\'' 오류가 발생하는 문제를 해결하는 방법은 무엇입니까?

Go 웹 앱에서 Docker의 'standard_init_linux.go:190: exec 사용자 프로세스로 인해 \'해당 파일 또는 디렉터리가 없습니다\'' 오류가 발생하는 문제를 해결하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-18 16:54:14
원래의
163명이 탐색했습니다.

How to Fix Docker's

Go Web App을 사용하여 Docker 오류 해결: "standard_init_linux.go:190: exec 사용자 프로세스로 인해 "해당 파일 또는 디렉터리 없음"이 발생했습니다.

기본 Docker에서 Go 웹 애플리케이션을 사용하면 "standard_init_linux.go:190: exec user process cause "해당 파일이 없거나 디렉토리"." 이 문제는 누락된 파일, 스크립트 인터프리터 또는 실행 가능한 라이브러리로 인해 발생합니다.

이 경우 net import에는 libc가 동적 링크 바이너리로 포함됩니다. 문제를 해결하려면 컴파일 중에 추가 플래그를 지정해야 합니다.

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
로그인 후 복사

플래그 설명:

  • CGO_ENABLED=0: C와의 인터페이스에 사용되는 Cgo를 비활성화합니다. code.
  • GOOS=linux: 대상 운영 체제를 Linux로 지정합니다.
  • GOARCH=amd64: 대상 아키텍처를 amd64로 지정합니다(64 -bit).
  • -a: 재구축 모든 Go 파일.
  • -tags netgo: Go 표준 라이브러리의 넷 패키지를 사용하도록 프로그램에 태그를 지정합니다.
  • -ldflags '-w' : 정적으로 링크된 실행 파일을 생성합니다(공유 라이브러리에 대한 종속성을 제거합니다).
  • -o mybin: 출력 바이너리 이름을 "mybin"으로 지정합니다.

이러한 플래그를 사용하면 외부 라이브러리에 의존하지 않는 정적으로 링크된 실행 파일을 생성하게 됩니다. 이렇게 하면 Docker에서 애플리케이션을 실행할 때 "해당 파일 또는 디렉터리가 없습니다" 오류가 해결됩니다.

위 내용은 Go 웹 앱에서 Docker의 'standard_init_linux.go:190: exec 사용자 프로세스로 인해 \'해당 파일 또는 디렉터리가 없습니다\'' 오류가 발생하는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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