Go 애플리케이션으로 Docker 이미지를 빌드할 때 "패키지를 찾을 수 없음" 오류가 발생할 수 있습니다. 불만스러운. 문제를 자세히 조사하고 해결책을 제시해 보겠습니다.
Dockerfile이 종속성을 설치하지 않거나 바이너리를 올바르게 빌드하지 않고 프로젝트 파일을 이미지 루트 디렉터리에 복사할 때 오류가 발생합니다. 이러한 불일치로 인해 시스템은 의도한 위치(/go/bin/myapp)에 존재하지 않는 바이너리를 검색하게 됩니다.
이 문제를 해결하려면 다음과 같은 Dockerfile 구조를 사용하는 것이 좋습니다.
FROM golang:1.9.2 ADD . /go/src/myapp WORKDIR /go/src/myapp RUN go get myapp RUN go install ENTRYPOINT ["/go/bin/myapp"]
이 Dockerfile은 다음을 수행합니다.
문제를 추가로 디버깅하려면 docker exec를 사용하여 ls 또는 다른 명령을 실행할 수 있습니다. 예:
docker exec <image name/hash> ls
또한 다음을 사용하여 생성된 이미지에 셸을 입력할 수 있습니다.
docker run --rm -it <image hash/name> /bin/sh
이를 통해 이미지를 탐색하고 해당 구조를 더 깊이 이해할 수 있습니다.
위 내용은 내 Docker 이미지가 내 Go 패키지를 찾을 수 없는 이유: \"패키지를 찾을 수 없습니다\" 오류에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!