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 をクリックした後にページがジャンプしないようにするための空のリンクの正しい書き方 # 問題

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

推薦する

JS の Promise に中止関数を追加する方法

目次概要プロミスレースメソッド約束の再パッケージ化中止コントローラAxiosプラグインにはキャンセル...

MySQL 8.0 ウィンドウ関数の紹介と概要

序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...

IE8対応のボーダー半径処理方法

canisue (http://caniuse.com/#search=border-radius)...

Vueは画像のズームとドラッグをサポートするリッチテキストエディタを統合しています

必要:ビジネス要件によると、写真をアップロードできる必要があり、アップロードされた写真はモバイル端末...

JS を使用した簡単な雪効果の例の詳細な説明

目次序文主な実装コードHTMLコードJSコード序文南の友達の多くは、雪をほとんど見たことがない、ある...

なぜ Tomcat が起動できないのでしょうか?

目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...

CentOS の MySQL に MariaDB をインストールするときに発生する方法と問題

以前にインストールしたmariadbを削除する1. rpm -qa | grep mariadb を...

DockerにMySQL 8.0をインストールする方法

環境: MacOS_Cetalina_10.15.1、Mysql8.0.18、Docker_2.0....

HTML ウェブページの段落レイアウトと改行

Web ページの外観はレイアウトに大きく左右されます。ページ内に長い段落のテキストがある場合、通常は...

Vue で Axios 非同期リクエスト API を使用する方法

目次基本的なHTTPリクエストの設定async/await を使用した Axios Axios によ...

MySQL バージョン 5.7.24 のデータベース インストール プロセスの詳細なグラフィック説明

MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...

VMware Workstation 15 Pro インストール ガイド (初心者向け)

01. VMware Workstation Pro 15 のダウンロードダウンロード: VMwa...

mysql-8.0.19-winx64 をインストールしてログインするための初心者向けチュートリアル (初心者必読)

目次1. インストールパッケージ(64ビット)をダウンロードする2. MySQLデータベースをインス...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...