docker-maven-pluginを使用してデプロイメントを自動化する方法を説明します

docker-maven-pluginを使用してデプロイメントを自動化する方法を説明します

1. docker-maven-pluginの紹介

私たちの継続的インテグレーションプロセスでは、プロジェクトエンジニアリングでは通常、Maven を使用してコンパイルおよびパッケージ化し、イメージを生成します。イメージをオンラインにすることで、オンライン効率が大幅に向上すると同時に、容量を迅速かつ動的に拡張し、迅速にロールバックできるため、非常に便利です。 docker-maven-plugin プラグインは、Maven プロジェクトでの簡単な構成を通じて、イメージを自動的に生成し、ウェアハウスにプッシュできるように設計されています。

**効果:

プロジェクトをコンパイルすると、Docker イメージが自動的に生成され、リモート リポジトリにプッシュされます。Maven 構成ファイル pom.xml** で適切に構成するだけです。

例 1 (コンパイル中に Docker イメージを自動的に生成する):

1. Maven の設定:

<プラグイン>
          <groupId>com.spotify</groupId>
           <artifactId>docker-maven-plugin</artifactId>
           <バージョン>1.0.0</バージョン>
           <構成>
           <!--imageName は正規の [a-z0-9-_.] に準拠している必要があることに注意してください。そうでない場合、ビルドは成功しません -->
           <imageName>myserver:v1</imageName>
           <!-- Dockerfile のディレクトリが指定されているので、プロジェクトの src/main の下に docker ディレクトリを作成し、そのディレクトリに Dockerfile ファイルを設定する必要があります -->
           <dockerディレクトリ>${project.basedir}/src/main/resources/docker</dockerディレクトリ>
           <skipDockerBuild> 偽</skipDockerBuild>
           <!-- リソースの内容は dockerDirectory (つまりビルドコンテキスト) にコピーされます -->
           <リソース>
                <リソース>
                <ターゲットパス>/</ターゲットパス>
                <ディレクトリ>${project.build.directory}</ディレクトリ>
                <include>${project.build.finalName}.jar</include>
                </リソース>
          </リソース>
     </構成>
</プラグイン>

2. 次に、プロジェクトの src\main\resources\docker (上記で設定した dockerDirectory ディレクトリ) に、次の内容を含む Dockerfile という名前のファイルを作成します。

java:8より
メンテナーブルー
mydocker-0.0.1-SNAPSHOT.jar を追加します。
エントリポイント ["java", "-jar", "/mydocker.jar"]

3. システム環境変数を設定して、接続する必要があるdockerデーモンのホストとポートを指定します。前述のように、dockerはC/Sアーキテクチャであり、docker-maven-pluginはクライアントの役割を果たしており、サーバーは環境変数を設定する必要があります。

ここに画像の説明を挿入

4. mvn clean install docker:build を実行します。プロジェクトがコンパイルされると、イメージが自動的にビルドされます。docker images を実行して、イメージが存在するかどうかを確認します。

ここに画像の説明を挿入

例 2 (例 1 に基づいてイメージをウェアハウスにプッシュする):

1. Maven 構成ファイル setting.xml を開き、ウェアハウス アカウント情報を追加します。

<サーバー>
    <サーバー>
        <id>docker-hub</id>
        <ユーザー名>blueiii</ユーザー名>
        <パスワード>xxxx</パスワード>
        <構成>
          <メール>[email protected]</メール>
        </構成>
    </サーバー>
  </サーバー>

2. pom.xml ファイルを変更します。imageName はウェアハウス パスと一致している必要があります。

<imageName>blueiii/mydocker:v1</imageName>

3. pom.xmlファイルを修正し、次の設定を追加します。

<pushImage>真</pushImage>
<serverId>docker-hub</serverId>
<レジストリ URL>https://hub.docker.com/</レジストリ URL>

4. また、mvn clean install docker:build を実行して、イメージを自動的にビルドし、docker hub にアップロードします。

ここに画像の説明を挿入

docker-maven-plugin を使用してデプロイメントを自動化する方法についての記事はこれで終わりです。docker maven プラグインの自動デプロイメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • docker-maven-pluginプラグインは対応するjarパッケージを取得できません
  • dockerfile-maven-plugin 使用ガイドの概要
  • docker-maven-plugin の詳細な使用方法
  • Maven プラグイン docker-maven-plugin の使用
  • dockerfile-maven-plugin ミニマリスト チュートリアル (推奨)

<<:  href をクリックした後にページがジャンプしないようにするための空のリンクの正しい書き方 # 問題

>>:  フレックスレイアウトのスペース間の最後の行の左揃えの問題を解決する方法

推薦する

Vue 監視プロパティと計算プロパティ

目次1. 監視プロパティを監視する1. ショッピングカート2. すべて選択し、すべて選択解除する2....

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

要素ツリーコントロールは、ドロップダウンメニューとアイコンを統合します(ツリー+ドロップダウン+入力)

目次要件:実装手順:この記事では主に以下について説明します: カスタムツリーコントロール<el...

Layui は複数条件クエリのサンプルコードを実装します

最近ファイルシステムを作ったのですが、フィールドが多すぎることに気づきましたページングを使用した複数...

WeChatアプレットシングルページアプリケーションルーティングを徹底的に理解するための10分

シングルページアプリケーションの特徴「前提:」Web ページには、クリックするとサイト内の他のページ...

親要素に対する CSS 子要素の配置の実装

解決親要素に position:relative を追加します。子要素に position:abso...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

HTML 基本コントロール入門_PowerNode Java アカデミー

<input> タグ<input> タグはユーザー情報を収集するために使用さ...

mysql データ型変換の実装

1. 問題下図のような表があり、結果値がreference_high値より大きいデータを見つける必要...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

Windows での MySQL 8.X インストール チュートリアル

以前は MySQL 5.7 を使用していましたが、MySQL にいくつか新しい機能が追加されたため、...

VUE ユニアプリテンプレート構文についての簡単な説明

1.v-bind(略称:)コンポーネント プロパティのデータで定義されたデータ変数を使用するか、コン...

CSS クロスブラウザ スタイルのバグのデバッグについて

まず最初に、適切なブラウザを選択します。私が Chrome を選択したのは、その強力なデバッグ ツー...