ローカルパッケージを使用して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"
助けてくれてありがとう。
アプリケーションは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で公開されます。
試してみてください:
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"]