ローカル パッケージを使用して Docker イメージを構築しようとすると、「インポート」エラーが発生する場合があります。パスがホスト名で始まっていません。」この問題は、ローカル パッケージを依存関係として利用する目的で Dockerfile を構築するときに発生します。
単純な Dockerfile の場合、ユーザーは通常、次のようなファイルを作成します。
FROM golang:onbuild EXPOSE 8080
この形式は次のとおりです。このアプローチは、記事「Docker を使用した Go サーバーのデプロイ」で概説されています。 「git-go-websiteskeleton」のコードをビルド ソースとして統合すると、次のエラーが表示される場合があります:
import "git-go-websiteskeleton/app/common": import path does not begin with hostname package git-go-websiteskeleton/app/common: unrecognized import path "git-go-websiteskeleton/app/common" import "git-go-websiteskeleton/app/home": import path does not begin with hostname package git-go-websiteskeleton/app/home: unrecognized import path "git-go-websiteskeleton/app/home" import "git-go-websiteskeleton/app/user": import path does not begin with hostname package git-go-websiteskeleton/app/user: unrecognized import path "git-go-websiteskeleton/app/user"
根本的な原因は、アプリケーションのビルドが Docker コンテナ内で行われ、依存関係にアクセスできることが必要であることです。
このエラーを修正するには、「golang:onbuild」の基本構文を超えてください。アプリケーションを構築するための詳細な手順を含むカスタマイズされた 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
などの構造を使用する可能性があります。これにより、Dockerfile が変更され、ソース コードと依存関係がコンテナー内に組み込まれます。その後、アプリケーションを構築して実行を開始し、外部アクセス用にポート 8080 を指定します。
以上がDocker イメージをビルドするときに「インポート パスがホスト名で始まらない」エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。