問題タブ [jib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
960 参照

spring-boot - Spring Boot の Jib を使用して Docker リポジトリのイメージ ストレージを最適化する

Jib を使用して Docker イメージを構築すると、リモートの Docker リポジトリ ストレージを最適化できますか?

Gradle を使用して Docker で Spring Boot を使用しています。現在、すべての依存関係が内部にパックされた標準のファット ブート jar を作成してから、次のようにイメージを作成しています。

これにより、実際にはコードがほとんど変更されていない場合でも、ビルドするたびに大きな (250 MB) 新しいイメージが作成されます。これは、fat jar に共有依存関係 (頻繁に変更されない) とコードの両方が含まれているためです。これは、プライベート リポジトリのストレージ スペースの非効率的な使用法であり、これを変更したいと考えています。

このためのアイデアは次のとおりです。

  • /opt/libs に依存関係のみを含む基本イメージを作成し、それを呼び出してspring-base:1.0.0、プライベート Docker レジストリにプッシュしましょう。

  • そのイメージを、コードのみを含むアプリケーション イメージの親/ベースとして使用します。Dockerfile は次のようになります (概念を提示するためだけにテストされていません)。

    /li>

これらのイメージははるかに小さく、依存関係のある大きな基本イメージは一度だけ保存されるため、多くのストレージが節約されることが期待されます。

私たちの同僚は、Jib を調べて、まさにこれを行うと主張しましたが、ドキュメント全体と FAQ を読み、少しいじってみましたが、よくわかりません。私たちはそれを統合して使用./gradlew jibDockerBuildし、依存関係、リソース、およびクラスのレイヤーを作成しているように見えますが、まだ 1 つの大きなイメージしかありません。Jib はビルド時間の短縮 (Docker レイヤー キャッシュの利用による) と再現可能なビルドに重点を置いているようですが、そのイメージをリポジトリにアップロードしても、現在のソリューションと比べて何も変わらないと思います。「静的な」依存関係を引き続き保存します。何度も繰り返しますが、新しい画像ごとに 1 つだけではなく、複数のレイヤーを持つようになります。

Docker と Jib の経験が豊富な方で、Jib が私たちが求めているストレージ スペースの最適化を提供してくれるかどうか説明していただけますか?

編集:答えを待っている間、私はこれらすべてをいじってhttps://github.com/wagoodman/diveを使用しdocker system dfdocker imagesサイズを確認し、画像とレイヤーを調べました.Jibはまさに何をしているようです必要です。

0 投票する
1 に答える
1693 参照

jib - ジブ - 「「useCurrentTimestamp」が見つかりません」

次のように、jib を pom.xml ファイルに追加します。

次のビルド コマンドを実行した後、

次のエラーが表示されます。

UseCurrentTimestamp は既に構成に含まれています。オンライン検索の後、1 つのエントリのみが見つかりました: https://github.com/GoogleContainerTools/jib/issues/413。ページに解決策が表示されません。

何が欠けている?

0 投票する
2 に答える
2379 参照

docker - Gitlab CI で Maven jib プラグインを実行中に docker デーモンに接続できない

ジブ Maven プラグインを使用して、Gitlab 継続的インテグレーションで自分のアプリケーションで Docker イメージを構築しようとしていますが、dind (docker-in-docker) サービスを使用してプラグインを docker デーモンに接続できません。現在、gitlab-ci.yml ファイルでこの構成を使用しています。

これは私が得るエラーです:

[エラー] プロジェクト my-application でゴール com.google.cloud.tools:jib-maven-plugin:0.9.11:dockerBuild (default-cli) を実行できませんでした: Docker デーモンへのビルドに失敗しました。インストール済みで、それを実行するための正しい権限を持っている -> [ヘルプ 1]


アップデート

2.2.0 に更新し、ローカルで実行しています。以前にコマンドを追加しましたがdocker images、プラグインは Gitlab CI で docker コマンドを見つけることができないようです:

$ docker images && mvn compile jib:dockerBuild /bin/bash: 97 行目: docker: コマンドが見つかりません

これは、jib プラグインの構成です。