ホームページ >バックエンド開発 >Golang >Docker イメージで Go パッケージが見つからない理由: 「パッケージが見つかりません」エラーの解決策

Docker イメージで Go パッケージが見つからない理由: 「パッケージが見つかりません」エラーの解決策

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-04 08:47:02414ブラウズ

Why Can't My Docker Image Find My Go Package: A Solution to the

Go アプリでの Docker: 「パッケージが見つかりません」エラーの解決

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 は以下を行います:

  1. プロジェクト ファイルを /go/src/myapp にコピーします。
  2. 作業ディレクトリを /go/src/myapp に設定します。
  3. go get (または好みの依存関係管理ツール) を使用して依存関係をインストールします。
  4. バイナリをビルドしてインストールします。
  5. ビルドされたバイナリにエントリ ポイントを設定します。

問題をさらにデバッグするには、docker exec を使用して ls またはその他のコマンドを実行します。例:

docker exec <image name/hash> ls

さらに、次を使用して生成されたイメージにシェルを入力できます:

docker run --rm -it <image hash/name> /bin/sh

これにより、イメージを探索し、その構造をより深く理解できるようになります。

以上がDocker イメージで Go パッケージが見つからない理由: 「パッケージが見つかりません」エラーの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。