Go アプリの Docker Build での「パッケージが見つかりません」エラーのトラブルシューティング
Go アプリケーションで Docker イメージをビルドすると、次のような問題が発生することがあります。 「パッケージが見つかりません」エラー。原因を理解し、解決策を見つけるために、提供された Dockerfile と問題の根本原因を調べてみましょう。
提供した Dockerfile は、myapp フォルダーを含むすべてのファイルをイメージのルート ディレクトリにコピーします。これは正しいように見えますが、実際には、Go アプリケーションをビルドしようとすると問題が発生します。
ファイルをコピーした後、 go build myapp を実行します。ただし、Go コンパイラーは、アプリケーション コードが /go/src/myapp ディレクトリに存在することを想定します。 Dockerfile に対して、依存関係をインストールしたり、コードを予期した場所に移動したりするように指示していないため、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 は次の操作を実行します:
これらの手順に従うと、Dockerfile は Go アプリケーションを正しくインストールしてビルドし、「パッケージが見つかりません」エラーを排除します。
追加のトラブルシューティングのヒント
それでも問題が発生する場合は、docker exec を使用してイメージの内容を検査し、問題をさらに診断することを検討してください。生成されたイメージのシェルに入って、環境をより深く理解することもできます。
以上がGo Docker ビルドが「パッケージが見つかりません」エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。