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

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

ブログ    

推薦する

ウェブデザインには目的、アイデア、思考、そして粘り強さがなければならない

<br />はじめに:このアイデアは、数日前に上級ウェブデザインの次の記事を考えていると...

Linux のような環境で jdk1.8 をインストールし、環境変数を設定する方法の詳細な説明

設定は非常にシンプルですが、毎回確認しないといけないので、記録だけ残しておきます。 1. インストー...

フロントエンドのパフォーマンス最適化を学習するための準備として、HTML ページのレンダリング プロセスを理解する (続き)

昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...

よくある CSS のヒントと経験談 11 選

1. 画像の下にある数ピクセルの空白を削除するにはどうすればよいですか?コードをコピーコードは次のと...

TypeScript デコレータ定義

目次1. コンセプト1.1 定義1.2 デコレータファクトリー1.3 デコレータの組み合わせ1.4 ...

JS を使用してクリップボード内の Excel コンテンツを解析する方法

目次序文1. イベントとクリップボードを貼り付ける2. クリップボード内のコンテンツ形式3. HTM...

JS 1次元配列を3次元配列に変換する例

今日、CSDN の Q&A セクションで友人が質問をしているのを見ました。彼は 1 次元配列...

CentOS7.4 に MySQL 5.7.26 をインストールするための詳細なチュートリアル

CentOS にはデフォルトで MariaDB がインストールされていますが、これは MySQL の...

CSS グリッドレイアウトを使用してレスポンシブな縦棒グラフを作成する方法

私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...

IISとAPACHEはHTTPSへのHTTPリダイレクトを実装しています

7 のMicrosoft の公式 Web サイトから HTTP Rewrite モジュールをダウンロ...

JavaScript データ型の詳細な説明

目次1. リテラル1.1 数値リテラル1.2 浮動小数点リテラル1.3 特別な値1.4 文字列リテラ...

Linux sftp コマンドの使用法

SFTPの概念sftp は、安全なファイル転送プロトコルである Secure File Transf...

携帯電話番号の歩数記録を取得するWeChatアプレット

序文最近、小さなプログラムを開発しているときに、このような問題に遭遇しました。ユーザーが認証をクリッ...

HTML ページ適応幅テーブル

WEB アプリケーションのページでは、テーブルがよく使用されます。列の数が限られているため、各列のコ...

組み込みオブジェクトに関するJavascriptの基礎

目次1. 組み込みオブジェクトの紹介1.1 数学オブジェクト1.2 数学における方法1.3 日付オブ...