ホームページ >バックエンド開発 >Golang >Go Buildpack がローカル モジュールを見つけられません。私には何が欠けているのでしょうか?

Go Buildpack がローカル モジュールを見つけられません。私には何が欠けているのでしょうか?

WBOY
WBOY転載
2024-02-13 11:21:07578ブラウズ

Go Buildpack 无法找到本地模块。我缺少什么?

php Editor Banana は、Go Buildpack の使用中に「ローカル モジュールが見つかりません。何が足りないのですか?」という問題に遭遇しました。 Go Buildpack は、Cloud Foundry プラットフォーム上で Go アプリケーションを構築および実行するためのツールです。この問題は通常、Go の依存関係が欠落しているか、構成が正しくないことが原因で発生します。この問題の解決策は、Go プロジェクトの依存関係をチェックし、GOPATH や GO111MODULE などの環境変数が正しく設定されていることを確認することです。

質問内容

https://fly.io で go アプリケーションをビルドして開始しようとしていますが、以下に示すように、ビルド時にテスト パッケージとテンプレート パッケージが見つかりません。

リーリー

https://paketo.io/docs/reference/go-reference/#package-management-with-go-modules ステータス:

リーリー

ビルドログを見ると、確かに go modvendor が実行されていることが分かりました。

リーリー

handlers.go:5:2: 「テンプレート」 main.go:8:2: "テスト"

私が何をしたのか:

  1. モジュール名を URL (つまり、test -> some.com/test) に変更し、go.mod の replace ディレクティブを使用してモジュールをポイントしました。
  2. go modvendor を実行して、生成されたものを確認しました...some.com があります!
  3. フライトの起動を介してローカル ビルドとリモート ビルドの両方を試しました。どちらの場合も、そのようなファイルは作成されません。

現在プライベートリポジトリを試しています。

回避策

これは優れた解決策ではありませんが、ホスト ファイルを編集してモジュールがローカル ファイル サーバーを指すようにすることは可能です。

リーリー

問題が fly にあるのか、buildpack にあるのかがわかった場合は、この回答を編集します。問題は、fly が go modvendor を実行するときに、go.mod 内の置換ディレクティブを尊重しないことです。

モジュール名が URL 形式である限り、自己実行 go mod プロバイダーはすべてを正しくコピーします 。有効な URL である必要はありません。

もう 1 つの解決策は、有効な URL でコードをホストし、そのまま使用することです。おそらくフラグが欠けていると思いますが、まだ見つかりません。この問題に遭遇した人がこの回答が役立つことを願っています。

以上がGo Buildpack がローカル モジュールを見つけられません。私には何が欠けているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。