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

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

推薦する

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...

Docker を使用した Hadoop クラスターのデプロイに関する詳細なチュートリアル

最近、社内に Hadoop テスト クラスターを構築したいので、docker を使用して Hadoo...

Docker ベースの Selenium 分散環境の構築

1.画像をダウンロードするdocker pull selenium/hub docker pull ...

Web Storage APIの使用に関する簡単な説明

目次1. ブラウザのローカルストレージ技術1.1、セッションストレージ1.2、ローカルストレージ2....

MySQL データのバックアップと復元のサンプル コード

1. データのバックアップ1. mysqldumpコマンドを使用してバックアップするmysqldum...

iframe が HTML 内のページにジャンプするのを防ぎ、iframe を使用して WeChat Web バージョンをページに埋め込む方法

私は、WinForm と HTML5 を組み合わせた小さなものを作りたいだけなのですが、突然、そこに...

MySQL の単一テーブル クエリ操作例の詳細な説明 [構文、制約、グループ化、集計、フィルタリング、並べ替えなど]

この記事では、MySQL の単一テーブル クエリ操作について説明します。ご参考までに、詳細は以下の通...

CentOS8でのDockerの使い方の詳しい説明

1. CentOS8でのDockerのインストール カール https://download.doc...

HTML でのアンカーポイントの使用_PowerNode Java アカデミー

ここで、アンカー ポイントを制御するいくつかの状況をまとめてみましょう。 1. 同じページ <...

MySQL 8.0.25 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25の最新のダウンロードとインストールのチュートリアルは参考になります。具体的な...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...

ウェブページを作る前に、これらのいわゆる仕様を見てみましょう

この記事では、Web ページを作成する前に確認すべき、いわゆる仕様をいくつかまとめました。皆様のお役...

Vue プロジェクトにおけるトランジション コンポーネントの適用の概要

​Vue のトランジションは、アニメーション トランジションをカプセル化するコンポーネントです。一般...

Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

目次1. Dockerはリモートアクセスを可能にする2. Intellij IDEAにDockerプ...

MySQL UPDATE ステートメントの「典型的な」落とし穴

目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...