Dockerized Go 웹 애플리케이션을 실행할 때 " Standard_init_linux.go:190에 해당 파일이나 디렉터리가 없습니다.
package main import ( "fmt" "net/http" "os" ) func hostHandler(w http.ResponseWriter, r *http.Request) { name, err := os.Hostname() if err != nil { panic(err) } fmt.Fprintf(w, "<h1>HOSTNAME: %s</h1><br>", name) fmt.Fprintf(w, "<h1>ENVIRONMENT VARS: </h1><br>") fmt.Fprintf(w, "<ul>") for _, evar := range os.Environ() { fmt.Fprintf(w, "<li>%s</li>", evar) } fmt.Fprintf(w, "</ul>") } func rootHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "<h1>Awesome site in Go!</h1><br>") fmt.Fprintf(w, "<a href='/host/'>Host info</a><br>") } func main() { http.HandleFunc("/", rootHandler) http.HandleFunc("/host/", hostHandler) http.ListenAndServe(":8080", nil) }
FROM scratch WORKDIR /home/ubuntu/go COPY webapp / EXPOSE 8080 CMD ["/webapp"]
컴파일된 Go 바이너리에 libc에 대한 종속성이 부족하여 오류가 발생합니다. net을 가져올 때 기본값입니다. 이 문제를 해결하려면 다음 플래그를 사용하여 Go 바이너리를 컴파일하세요.
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
위 내용은 내 Dockerized Go 웹 앱이 '해당 파일 또는 디렉터리 없음' 오류와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!