ジブの紹介 Jib は Google が開発した、Java アプリケーションの Docker および OCI イメージを直接ビルドできるライブラリです。Maven および Gradle プラグインの形式で提供されます。 Jib を使用すると、Java 開発者は使い慣れた Java ツールを使用してコンテナを構築できます。 Jib は、アプリケーションをコンテナ イメージにパッケージ化するために必要なすべての手順を処理する、高速でシンプルなコンテナ イメージ構築ツールです。 Dockerfile を記述したり Docker をインストールしたりする必要がなく、Maven および Gradle に直接統合されます。ビルドにプラグインを追加するだけで、Java アプリケーションを即座にコンテナ化できます。 Jib オープンソース アドレス: https://github.com/GoogleContainerTools/jib 一般的なDockerビルドプロセス ジブの製作プロセス ジブ統合 プロジェクトは Spring Cloud、バージョン Hoxton.SR1 です。 jib を統合するには、pom に jib プラグインを追加するだけです。 <プラグイン> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <バージョン>${jib.version}</バージョン> </プラグイン> ジブ関連の完全な構成 <プロパティ> <!-- jib docker 設定--> <!-- jib バージョン --> <jib.version>2.2.0</jib.version> <!-- jib パッケージングをスキップするかどうか --> <jib.skip>真</jib.skip> <!-- ウェアハウスイメージ名 --> <jib.repository.name>akk-システム</jib.repository.name> <!-- スタートアップ クラス --> <jib.main.class>com.akk.GatewayApplication</jib.main.class> <!-- 倉庫ログインユーザー名 --> <レジストリユーザー名>222222222222</レジストリユーザー名> <!-- 倉庫ログインパスワード --> <レジストリパスワード>111111111111</レジストリパスワード> </プロパティ> <プラグイン> <プラグイン> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <バージョン>${jib.version}</バージョン> <構成> <skip>${jib.skip}</skip> <!-- ベースイメージを構成する --> <から> <image>openjdk:8-jre-alpine</image> </from> <!-- プッシュ アドレス、ウェアハウス名、ミラー名を設定します --> <に> <画像>registry.cn-hangzhou.aliyuncs.com/akk_java/${jib.repository.name}</画像> <タグ> <!-- <タグ>${jib.repository.name}</タグ>--> <!-- <tag>${version}</tag>--> </タグ> <認証> <ユーザー名>${REGISTRY_USERNAME}</ユーザー名> <パスワード>${REGISTRY_PASSWORD}</パスワード> </auth> </に> <!-- プライベート サーバーは https ではなく http です。デフォルトでは、jib は https 以外のプライベート サーバーにプッシュしません。プライベート サーバーは追加されますが、パブリック サーバーは追加されません。 --> <!-- <allowInsecureRegistries>true</allowInsecureRegistries>--> <コンテナ> <mainClass>${jib.main.class}</mainClass> <ラベル> <名前>${アーティファクトID}</名前> </ラベル> </コンテナ> </構成> <!--Maven ライフサイクルにバインド--> <!-- <実行>--> <!-- <実行>--> <!-- <phase>パッケージ</phase>--> <!-- <目標>--> <!-- <goal>ビルド</goal>--> <!-- </目標>--> <!-- </実行>--> <!-- </実行>--> </プラグイン> </プラグイン> パラメータの説明:
この時点で、idea の Maven メニューに jib プラグイン関連のコンテンツが表示されます。 たとえば、ゲートウェイモジュール(イメージをパッケージ化する必要がある)の場合、pom構成は次のようになります。 <?xml バージョン="1.0" エンコーディング="UTF-8"?> <プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <親> <artifactId>akk システム</artifactId> <グループID>com.akk</グループID> <バージョン>0.0.1-SNAPSHOT</バージョン> </親> <モデルバージョン>4.0.0</モデルバージョン> <artifactId>ゲートウェイ</artifactId> <プロパティ> <!-- jib docker 設定--> <jib.version>2.2.0</jib.version> <jib.skip>偽</jib.skip> <jib.repository.name>akk-gateway</jib.repository.name> <jib.main.class>com.akk.GatewayApplication</jib.main.class> </プロパティ> <依存関係> <依存関係> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </依存関係> <依存関係> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> </依存関係> </依存関係> </プロジェクト> 共通のパブリック依存関係パッケージ pom (イメージをパッケージ化する必要はありません): <?xml バージョン="1.0" エンコーディング="UTF-8"?> <プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <モデルバージョン>4.0.0</モデルバージョン> <親> <artifactId>akk システム</artifactId> <グループID>com.akk</グループID> <バージョン>0.0.1-SNAPSHOT</バージョン> </親> <artifactId>共通</artifactId> <バージョン>0.0.1-SNAPSHOT</バージョン> <プロパティ> <!-- jib docker 設定--> <jib.version>2.2.0</jib.version> <jib.skip>真</jib.skip> <jib.repository.name>akk-システム</jib.repository.name> <jib.image.name>akk システム</jib.image.name> </プロパティ> <依存関係> <!-- 依存関係情報 --> </依存関係> </プロジェクト> このうち、プロパティはジブの関連パラメータ設定をカバーします。 パッケージ画像 パッケージ化するには パッケージ化が完了したら、ローカルの Docker イメージを確認します (jib:dockerBuild コマンドではイメージはアップロードされませんが、jib:build コマンドではイメージがアップロードされます) 画像をパックしてアップロードする
docker ログイン --username=ユーザー名 --password=パスワード registry.cn-hangzhou.aliyuncs.com 画像をプルする docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-gateway:latest Docker デプロイメント プロジェクト マイクロサービス プロジェクトのデプロイメントには多くのモジュールがあり、一般的には分散クラスター環境であるため、手動でのデプロイメントは面倒です。Jenkins などの自動デプロイメント ツールを使用できます。 Jenkins を使用してイメージをパッケージ化してアップロードした後、リモート サーバーにログインし、スクリプトを実行して起動します。のように: #!/bin/bash # docker リポジトリにログインdocker login --username=username --password=password registry.cn-hangzhou.aliyuncs.com # 実行中のコンテナを停止します docker ps | grep akk_java | awk '{print $1}' | xargs docker stop # コンテナを削除する docker ps -a -q | grep akk_java | awk '{print $1}' | xargs docker rm # イメージファイルをクエリし、docker イメージを削除します | grep akk_java | awk '{print $3}' | xargs docker rmi # イメージをプルする docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-user:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-gateway:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-task:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-store:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-pay:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-app-api:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-sso-auth:latest docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-seata:latest イメージを再度プルした後、 Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順に関するこの記事はこれで終わりです。Spring Cloud Docker デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: vue3 再帰コンポーネントカプセル化の全プロセス記録
>>: vue+node+socket ioは複数人のインタラクションを実現し、プロセス全体を解放します
1. パーティションテーブルの意味パーティション テーブル定義は、任意のサイズに設定できるルールに従...
サーバーステータス分析Linux サーバーの CPU の詳細を表示する#CPU情報を表示[root@...
文字化けしたコードの問題は次のとおりです。 この問題の原因は非常に単純です。コマンドラインのエンコー...
MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...
mysqldump コマンドはじめに: データベースバックアッププログラム形式: mysqldum...
目次概要1. 親コンポーネントが子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに...
目次JSONとはなぜこの技術なのでしょうか? JSONの使い方- データ形式- メモ- JSには2つ...
li はブロックレベル要素であり、デフォルトで 1 行を占めるため、水平方向の配置を実現する場合は、...
IEでのRGBAとフィルター値の変換RGBA 透明度値IE フィルター値0.1 19 0.2 33 ...
LocalStorageはブール値を保存します今日、ブール値データを保存するために localsto...
詳細な手順は次のとおりです。 1. ディスク容量を確認します。 [root@localhost バッ...
テーブルを作成する テーブル `map` を作成します ( `id` int(11) NULLではな...
この記事では、jsネイティブカルーセルプラグインの具体的なコードを参考までに共有します。具体的な内容...
遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...
目次setState は同期ですか、それとも非同期ですか?カスタム合成イベントと React フック...