ジブの紹介 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は複数人のインタラクションを実現し、プロセス全体を解放します
拡張版です。質問とSQL文は以下の通りです。ユーザー テーブルを作成し、id、name、gender...
この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...
原因: java.sql.SQLException: 列の文字列値が正しくありません: '\...
プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...
MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...
目次序文複数の言語を切り替えるにはどうすればいいですか? 1. vue-i18nパッケージをインスト...
この記事は主にPostgreSQLマテリアライズドビューのプロセス分析について紹介します。サンプルコ...
需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミド...
目次1. 初心者が陥りがちな間違い2. Iteratorのremove()メソッドを使用する3. f...
目次序文プロジェクト設計後部フロントエンドプロジェクトを実行する質疑応答序文これまでの API 開発...
この記事では、例を使用して、MySQL 条件クエリ and or の使用方法と優先順位を説明します。...
1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...
<br />このページでは、テーブルをネストすることで組版を実現しています。つまり、1 ...
プロジェクト内のページの長さはおよそ2000px以上あり、背景画像にはテクスチャやグラデーションがあ...
目次実装のアイデアアカウント パスワードを保存する方法は 3 つあります。機能インターフェースアカウ...