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

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

推薦する

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

Docker Alpine イメージのタイムゾーン問題に対する完璧な解決策

最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...

explainコマンドがMySQLデータを変更する理由

クエリで EXPLAIN を実行するとデータベースが変更されるかどうかを尋ねられた場合、おそらく「い...

HTML Webページ作成チュートリアル iframeタグを慎重に使用してください

iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

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

画像をプルする docker pull season/fastdfs:1.2トラッカーを開始 doc...

MySQL 8.0 の降順インデックス

序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...

Centos6.5 に zabbix2.4 をインストールするチュートリアル図

centos-DVD1バージョンシステムの固定IPアドレスは192.168.159.128で、cen...

フィルターを使用して画像に透明な CSS を書く方法

フィルターを使用して画像に透明な CSS を書く方法コードをコピーコードは次のとおりです。 html...

Linuxでpyファイルを直接実行する方法

1. まずファイルを作成します(ファイルを配置するディレクトリにcdします) myTest.py を...

HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。

オプションに属性 selected = "selected" を追加すると、それ...

ログインボックスのドラッグ効果を実現するためのJavascript

この記事では、ログインボックスのドラッグ効果を実現するためのJavascriptの具体的なコードを参...

Dockerイメージをプライベートリポジトリにアップロードする方法の例

イメージは、GitHub と同様に Docker パブリック リポジトリに直接簡単にプッシュできます...

MySQL マルチインスタンス構成のアプリケーションシナリオ

目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...

Dockerでmysqlのルートパスワードを変更する方法

最初のステップはmysqlコンテナを作成することです docker exec -it コンテナID ...