Go アプリケーションで Docker イメージをビルドするときに、「パッケージが見つかりません」エラーが発生する可能性があります。イライラする。問題を詳しく調べて解決策を提供しましょう。
このエラーは、依存関係をインストールしたりバイナリを正しくビルドしたりせずに、Dockerfile がプロジェクト ファイルをイメージ ルート ディレクトリにコピーしたときに発生します。この不一致により、システムは、意図した場所 (/go/bin/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 は以下を行います:
問題をさらにデバッグするには、docker exec を使用して ls またはその他のコマンドを実行します。例:
docker exec <image name/hash> ls
さらに、次を使用して生成されたイメージにシェルを入力できます:
docker run --rm -it <image hash/name> /bin/sh
これにより、イメージを探索し、その構造をより深く理解できるようになります。
以上がDocker イメージで Go パッケージが見つからない理由: 「パッケージが見つかりません」エラーの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。