ホームページ >バックエンド開発 >Golang >dockerfile で go install を実行すると時間がかかる

dockerfile で go install を実行すると時間がかかる

王林
王林転載
2024-02-06 09:50:041167ブラウズ

go install 在 dockerfile 中需要花费很多时间

質問内容

データベースからモデルを生成するのにgo-jetを使用しているため、 # で行う必要があります。 ##go build jet を実行する前に。 go install 経由でインストールする必要があります。そうしないと、docker が jet 実行可能ファイルを見つけることができません。問題が発生しました: アプリケーションを再構築すると、docker は毎回 go-jet を再ダウンロードします (60 ~ 80 秒かかります)。

jet ライブラリを生成 (またはキャッシュ) するより良い方法はありますか?インストールに時間がかかりすぎます

Dockerfile に

jet をキャッシュしようとしましたが、再度ダウンロードされてしまいました: リーリー

私の Dockerfile:

リーリー

私のスタートアップ.sh:

リーリー

そして念のため、私の docker-compose :

RUN --mount=type=cache,target=/go/pkg/mod/ \
    go install github.com/go-jet/jet/v2/cmd/jet@latest


正解


非常に簡単な解決策が見つかりました。

COPY の前に go install を置く必要があります。 .。何が起こるか: docker がプロジェクト内の変更を検出すると、アプリケーション キャッシュ (COPY . . 行) とそれに続くすべての行 (go install を含む) を削除します。

私の最終的な Dockerfile:

リーリー

以上がdockerfile で go install を実行すると時間がかかるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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