web-dev-qa-db-ja.com

ローカルパッケージでDockerをビルドするときに、エラー「インポートパスがホスト名で始まらない」

ローカルパッケージを使用してDockerを構築しようとしていますが、「インポートパスがホスト名で始まりません」というエラーが表示されます。私の理解が正しければ、私のDockerfileは

FROM golang:onbuild
EXPOSE 8080

この記事に基づく Dockerを使用したGoサーバーのデプロイ

Dockerをビルドするためのソースとしてこのコード git-go-websiteskeleton を使用します。完全なエラーはここにあります。

 import "git-go-websiteskeleton/app/common":インポートパスがホスト名で始まらない
 package git-go-websiteskeleton/app/common:認識されないインポートパス "git-go-websiteskeleton/app/common "
 import" git-go-websiteskeleton/app/home ":インポートパスがホスト名で始まらない
 package git-go-websiteskeleton/app/home:認識されないインポートパス" git-go-websiteskeleton/app/home "
 import" git-go-websiteskeleton/app/user ":インポートパスがhostname 
 package git-go-websiteskeleton/app/userで始まらない:認識されないインポートパス "git-go-websiteskeleton/app /user"

助けてくれてありがとう。

14
panchapol

アプリケーションはDockerコンテナー内にビルドされ、ビルド時に依存関係を利用できるようにする必要があります。

golang:onbuildは、単純な場合にコンパクトなDockerfileを提供しますが、依存関係をフェッチしません。

アプリケーションのビルドに必要な手順を使用して、独自のDockerfileを作成できます。プロジェクトの外観に応じて、次のようなものを使用できます。

FROM golang:1.6
ADD . /go/src/yourapplication
RUN go get github.com/jadekler/git-go-websiteskeleton
RUN go install yourapplication
ENTRYPOINT /go/bin/yourapplication
EXPOSE 8080

これにより、ソースと依存関係がコンテナーに追加され、アプリケーションがビルドされて起動され、ポート8080で公開されます。

2
Niemi

試してみてください:

FROM golang:latest
RUN mkdir /go/src/app
WORKDIR /go/src/app
ADD ./HelloWorld.go ./
RUN go get
RUN go build -o main .
CMD ["/go/src/app/main"]
1
the4thamigo_uk