アイデアをDockerに接続してワンクリックでデプロイする方法

アイデアをDockerに接続してワンクリックでデプロイする方法

1. docker設定ファイルを変更し、ポート2375を開きます。

[root@s162 docker]# vim /usr/lib/systemd/system/docker.service
#ExecStart を見つけて、最後に # を追加し、-H tcp://0.0.0.0:2375 を追加します 

[root@s162 docker]# systemctl daemon-reload
[root@s162 docker]# systemctl dockerを起動します

## ポート 2375 が有効になっているかどうかを確認します [root@s162 docker]# lsof -i:2375
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
dockerd 27021 ルート 5u IPv6 352598799 0t0 TCP *:2375 (LISTEN)

2. Dockerプラグインのインストールと設定

2.1. idea-pluginsマーケットからdockerプラグインをインストールする

わずかに…

2.2. Dockerの設定

ここに画像の説明を挿入

3. SpringbootプロジェクトをDockerサーバーにデプロイする

3.1. docker/dockerfile の作成

ここに画像の説明を挿入

3.2. Maven に docker-maven-plugin プラグインを追加

 <プラグイン>
   <groupId>com.spotify</groupId>
   <artifactId>docker-maven-plugin</artifactId>
   <バージョン>1.0.0</バージョン>
   <構成>
    <!-- 生成されたイメージ名を指定します。タグを指定しない場合は、デフォルトで最新のものが使用されます-->
    <画像名>jhs/${プロジェクト アーティファクト ID}:${プロジェクト バージョン}}</画像名>
    <!-- 追加の指定タグを追加します (必須ではありません) -->
    <!--
    <画像タグ>
     <imageTag>${project.version}</imageTag>
    </画像タグ>
    -->

    <!-- Dockerfile パスを指定します: プロジェクトのルート パスの下 -->
    <dockerディレクトリ>${project.basedir}/docker</dockerディレクトリ>
    <!-- リモート Docker API アドレスを指定します -->
    <dockerホスト>http://192.168.129.162:2375</dockerホスト>


    <!-- リソースをコピー -->
    <リソース>
     <リソース>
      <ターゲットパス>/</ターゲットパス>
      <ディレクトリ>${project.build.directory}</ディレクトリ>
      <include>${project.build.finalName}.jar</include>
     </リソース>
    </リソース>


    <!--docker build 時に dockerfile: イメージ作成時に変数を設定する -->
    <ビルド引数>
     <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
    </buildArgs>
   </構成>
  </プラグイン>

3.3. docker:ビルド

コマンド$ mvn clean package docker:build -Dmaven.test.skip=trueを使用してイメージをビルドし、イメージが docker サーバーに正常にアップロードされたかどうかを確認します。

ここに画像の説明を挿入

3.4 docker:タグ

docker コマンドラインの形式は次のとおりです: #docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>

プラグインの設定
<configuration>追加の構成:

 <構成>
	 <画像>jhs/${project.artifactId}:${project.version}</画像>
  <!-- docker タグ -->
  <新しい名前>192.168.129.160:5000/${プロジェクト.アーティファクトId}:${プロジェクト.バージョン}}</新しい名前>
</構成>

後続のプッシュに備えてイメージにタグを付けます: mvn clean docker:tag -Dmaven.test.skip=true -DskipDockerBuild

ここに画像の説明を挿入

3.5 docker:プッシュ

プラグインの設定
<configuration>追加の構成:

<構成>
	 <!-- docker push はリモートイメージリポジトリにプッシュします-->
  <!-- serverId: Maven の setting.xml で設定されたサーバー情報 ID です -->
  <serverId>nexus-docker-registry</serverId>
  <レジストリ URL>192.168.129.160:5000</レジストリ URL>
  	
  	<!-- タグ付きの新しいイメージを Nexus にプッシュします -->
		<画像名>192.168.129.160:5000/${プロジェクト.アーティファクトId}</画像名>
</構成>

上記のタグを付けられたイメージをプライベートサーバー nexus にプッシュします: mvn clean docker:push -Dmaven.test.skip=true -DskipDockerBuild -DskipDockerTag

ここに画像の説明を挿入

3.6 Dockerプラグインパラメータ

  • -DskipDockerBuildイメージビルドをスキップする
  • -DskipDockerTagイメージタグをスキップする
  • -DskipDockerPushでイメージのプッシュをスキップする
  • -Docker のゴールをスキップする-DskipDocker

3.7 Mavenフェーズへのコマンドのバインド

<処刑>
  <実行>
   <id>ビルドイメージ</id>
   <phase>パッケージ</phase>
   <目標>
    <goal>ビルド</goal>
   </目標>
  </実行>

  <実行>
   <id>タグ画像</id>
   <phase>パッケージ</phase>
   <目標>
    <goal>タグ</goal>
   </目標>
   <構成>
    <画像>jhs/${project.artifactId}:${project.version}</画像>
    <新しい名前>192.168.129.160:5000/${プロジェクト.アーティファクトId}:${プロジェクト.バージョン}}</新しい名前>
   </構成>
  </実行>


  <実行>
   <id>プッシュイメージ</id>
   <phase>デプロイ</phase>
   <目標>
    <goal>プッシュ</goal>
   </目標>
   <構成>
    <!-- docker push はリモートイメージリポジトリにプッシュします-->
    <!-- serverId: Maven の setting.xml で設定されたサーバー情報 ID です -->
    <serverId>nexus-docker-registry</serverId>
    <レジストリ URL>192.168.129.160:5000</レジストリ URL>
    <画像名>192.168.129.160:5000/${プロジェクト.アーティファクトId}</画像名>
   </構成>
  </実行>

 </処刑>

3.8 ベストプラクティス

 <プロパティ>
  <docker.host>http://192.168.129.162:2375</docker.host>
  レジストリの URL は 192.168.129.160:5000 です。
 </プロパティ>
 
<ビルド>
 <プラグイン>
 	<プラグイン>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <バージョン>1.0.0</バージョン>
  <構成>
   <画像名>dic/${プロジェクト.artifactId}:${プロジェクト.バージョン}}</画像名>
   <!-- 追加の指定タグを追加します (複数のタグを設定できます)。指定しない場合は最新のタグになります -->
   <!--
    <画像タグ>
     <imageTag>${project.version}</imageTag>
    </画像タグ>
    -->


   <!-- Dockerfile パスを指定します: プロジェクトのルート パスの下 -->
   <dockerディレクトリ>${project.basedir}/docker</dockerディレクトリ>
   <!-- リモート Docker API アドレスを指定します -->
   <dockerホスト>${docker.host}</dockerホスト>


   <!-- リソースをコピー -->
   <リソース>
    <リソース>
     <ターゲットパス>/</ターゲットパス>
     <ディレクトリ>${project.build.directory}</ディレクトリ>
     <include>${project.build.finalName}.jar</include>
    </リソース>
   </リソース>


   <!--docker build 時に dockerfile: イメージ作成時に変数を設定する -->
   <ビルド引数>
    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
   </buildArgs>
  </構成>

  <処刑>
   <実行>
    <id>ビルドイメージ</id>
    <phase>パッケージ</phase>
    <目標>
     <goal>ビルド</goal>
    </目標>
   </実行>

   <実行>
    <id>タグ画像</id>
    <phase>パッケージ</phase>
    <目標>
     <goal>タグ</goal>
    </目標>
    <構成>
     <画像>dic/${project.artifactId}:${project.version}</画像>
     <新しい名前>${docker.registry.url}/${project.artifactId}:${project.version}</新しい名前>
    </構成>
   </実行>


   <実行>
    <id>プッシュイメージ</id>
    <phase>デプロイ</phase>
    <目標>
     <goal>プッシュ</goal>
    </目標>
    <構成>
     <!-- docker push はリモートイメージリポジトリにプッシュします-->
     <!-- serverId: Maven の setting.xml で設定されたサーバー情報 ID です -->
     <serverId>nexus-docker-registry</serverId>
     <レジストリ URL>${docker.registry.url}</レジストリ URL>
     <イメージ名>${docker.registry.url}/${project.artifactId}</イメージ名>
    </構成>
   </実行>

  </処刑>
 </プラグイン>
 </プラグイン>
 </ビルド>

4. プライベートDockerリポジトリHarborのインストール手順の詳細(補足)

https://www.jb51.net/article/161964.htm

これで、docker を接続してワンクリック デプロイメントを実現するアイデアに関するこの記事は終了です。docker を接続してワンクリック デプロイメントを実現する関連アイデアの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)
  • Docker を使用した war パッケージ プロジェクトのデプロイの実装
  • Dockerを使用してMySQL 8.0をデプロイする方法の例
  • Docker を使用した ELK7.3.0 ログ収集サービスの導入に関するベスト プラクティス
  • Docker で onlyoffice をインストールして展開する詳細なプロセス

<<:  要素テーブルテーブルコンポーネントの複数フィールド(複数列)ソート方法

>>:  MySQL でのログインを取り消す

推薦する

スローモーションアニメーション効果を実現するJavaScript

この記事では、スローモーションアニメーション効果を実現するためのJavaScriptの具体的なコード...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

CSS を使用してマウスをホバーすることで他のタグのスタイルを変更するサンプルコード

序文:私の知る限り、現在 CSS で制御できるのは、タグをホバーしたときにそのタグの下の兄弟タグとサ...

CSS3は水平方向の中央揃え、垂直方向の中央揃え、水平方向と垂直方向の中央揃えのサンプルコードを実装しています。

フロントエンドの担当者であれば、面接でも仕事中でも、「CSS を使用して中央揃えにする」という効果に...

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

ウェブデザインにおけるカラーマッチングの優れた例30選

本日は、色彩の応用に関する優れた事例を 30 件集めて、皆さんにご紹介したいと思います。これらの事例...

Win10 での MySQL 5.7 の詳細なインストールと設定のチュートリアル

1. MySQL 5.7を解凍する2. 新しい設定ファイルmy.iniを作成し、 D:\Free\m...

JS での filter() 配列フィルターの使用

目次1. はじめに2. 方法の紹介3. 使用例要約する1. はじめに配列フィルターは、フロントエンド...

単純なCSSの詳細に惚れ込むと、重要ではないものの、効率性が向上する可能性がある

CSS の将来は非常に楽しみです。一方では、まったく新しいページ レイアウト方法であり、他方では、ク...

JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明

目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...

Node.js パッケージ マネージャー npm の具体的な使用方法

目次目的npm init および package.json ファイルモジュールのインストールと管理モ...

CSS transform-originプロパティを理解する

序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...

ボタンを使用してフォームを送信する代わりに、画像を使用してフォームを送信します。

コードをコピーコードは次のとおりです。 <フォームメソッド="post" ...

uni-appのスタイルの詳細な説明

目次uni-app のスタイル要約するuni-app のスタイルsassプラグインは公式ウェブサイト...