>백엔드 개발 >Golang >Dockerfile 패키지를

Dockerfile 패키지를

WBOY
WBOY앞으로
2024-02-05 23:36:08442검색

Dockerfile 包去

질문 내용

go와 gin으로 작성한 지원서가 있는데 파일은 다음과 같이 나누어져 있습니다.

으아아아

각 폴더에는 다른 패키지를 호출하는 패키지가 있습니다. 예:

으아아아

으아아아

내 go.mod는 다음과 같습니다:

으아아아

그래서 내 지원 흐름을 따르네요..

이 애플리케이션의 도커 이미지를 만들고 싶습니다. (학습 목적으로 도커의 기본을 배우고 싶어서 테스트용으로 만든 API입니다.)

도커 이미지:

으아아아

이미지를 빌드하는 중 오류가 발생했습니다:

으아아아

이유 아시는 분 계신가요? 이 문제를 해결하는 방법을 잘 모르겠습니다. 패키지를 Docker 이미지로 어떻게 가져올 수 있나요?

--편집

제안대로 dockerfile을 업데이트했습니다:

으아아아

오류:

으아아아


정답


이 문제는

에 발생했습니다. copy main.go ./

golang은 종속성/패키지를 어떻게 보나요?

  • 모듈 캐시: 패키지가 modcache $gopath/pkg/mod에 있는지 확인하세요.
  • Project Directory: modcache에서 패키지를 찾을 수 없으면 프로젝트 모듈 루트를 기준으로 패키지가 존재하는지 확인합니다. (github.com/guilherm5/login-user/models - 라는 디렉터리가 있는지 확인하세요.) models
  • Remote: 패키지가 모듈 캐시나 프로젝트 루트에 없으면 원격 저장소에서 가져옵니다.
귀하의 경우 프로젝트 모듈 루트에 이미 패키지(디렉토리)가 있지만

만 컨테이너 시스템에 복사되었습니다. 따라서 main.go가 실행되면 캐시나 루트 디렉터리에 있는 패키지를 볼 수 없습니다. 그런 다음 리모콘에서 끌어오려고 합니다. go mod tidy

원격 저장소에 코드가 있는데 왜 끌어오지 않나요? 저장소가 비공개이기 때문입니다.

솔루션

모든 파일과 폴더를 컨테이너 시스템에 복사

으아아아

문제가 해결될 것입니다. 최종 프로덕션 빌드에는 필요한 파일만 포함된 다단계 빌드가 이미 있습니다.

보기

  • go 모듈
  • 비공개 모듈
  • 개인 저장소를 "가져오는" 올바른 방법은 무엇입니까?

위 내용은 Dockerfile 패키지를의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제