IDEA で Docker プロジェクトをデプロイする手順

IDEA で Docker プロジェクトをデプロイする手順
現在、ほとんどのプロジェクトが Docker 上にデプロイされ始めていますが、デプロイのプロセスはまだ少し面倒なので、この記事では、IDEA を使用してワンクリックでデプロイする方法を説明したいと思います。

Dockerの設定

設定ファイルを変更する

Docker 構成ファイルを開きます。
vim /usr/lib/systemd/system/docker.service
次の行をコメントアウトします。
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
新しい行を書いてください:
実行開始=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
設定ファイルを再ロードして起動します:
systemctlデーモンリロード
systemctl ドッカーを起動する

次の図に示すように:

IDEA を使用した Docker の設定

Dockerプラグインをインストールする

Docker情報を設定する

設定で Docker を構成するには、API URL を構成する必要があります。接続が成功すると、以下のように表示されます。

プロジェクト構築

新しいSpringbootプロジェクトを作成する

IDEA を通じてプロジェクトを構築するには、何も選択する必要はなく、クリックし続けるだけです。

pomファイルを変更する

最も重要な2つのポイントは次のとおりです。

1. プロパティタグを追加する

<docker.image.prefix>デモ</docker.image.prefix>

2. 新しいプラグインタグを追加する

<プラグイン>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 <バージョン>1.2.1</バージョン>
 <構成>
   <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名>
   <dockerディレクトリ></dockerディレクトリ>
   <リソース>
     <リソース>
       <ターゲットパス>/</ターゲットパス>
       <ディレクトリ>${project.build.directory}</ディレクトリ>
       <include>${project.build.finalName}.jar</include>
     </リソース>
   </リソース>
 </構成>
</プラグイン>

完全な pom ファイルは次のとおりです。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <モデルバージョン>4.0.0</モデルバージョン>
 <親>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <バージョン>2.2.1.RELEASE</バージョン>
   <relativePath/> <!-- リポジトリから親を検索 -->
 </親>
 <グループID>com.example</グループID>
 <artifactId>デモ</artifactId>
 <バージョン>0.0.1</バージョン>
 <name>デモ</name>
 <description>Spring Boot のデモ プロジェクト</description>

 <プロパティ>
   <java.version>1.8</java.version>
   <docker.image.prefix>デモ</docker.image.prefix>
 </プロパティ>

 <依存関係>

   <依存関係>
     <groupId>org.springframework.boot</groupId>
     <artifactId>スプリングブートスターター</artifactId>
   </依存関係>

   <依存関係>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
   </依存関係>

   <依存関係>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>テスト</scope>
     <除外事項>
       <除外>
         <groupId>org.junit.vintage</groupId>
         <artifactId>junit-vintage-engine</artifactId>
       </除外>
     </除外>
   </依存関係>
 </依存関係>

 <ビルド>
   <プラグイン>
     <プラグイン>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-maven-plugin</artifactId>
     </プラグイン>
     <プラグイン>
       <groupId>com.spotify</groupId>
       <artifactId>docker-maven-plugin</artifactId>
       <バージョン>1.2.1</バージョン>
       <構成>
         <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名>
         <dockerディレクトリ></dockerディレクトリ>
         <リソース>
           <リソース>
             <ターゲットパス>/</ターゲットパス>
             <ディレクトリ>${project.build.directory}</ディレクトリ>
             <include>${project.build.finalName}.jar</include>
           </リソース>
         </リソース>
       </構成>
     </プラグイン>
   </プラグイン>
 </ビルド>

</プロジェクト>

新しいDockerfileを作成する

ルートディレクトリに新しいDockerfileファイルを作成する必要があります

#ベースイメージを指定してカスタマイズする FROM java:8

#メンテナー情報 メンテナー zhouzhaodong <[email protected]>

#ここでの /tmp ディレクトリは実行時に匿名ボリュームとして自動的にマウントされ、/tmp に書き込まれた情報はコンテナストレージ層 VOLUME /tmp に記録されません。

#コンテキストディレクトリのtarget/demo-1.0.0.jarをコンテナにコピーします。COPY target/demo-0.0.1.jar demo-1.0.0.jar

#bash モードで実行して、demo-1.0.0.jar にアクセスできるようにします。#RUN新しいレイヤーを作成し、そのレイヤーでこれらのコマンドを実行します。実行が完了したら、このレイヤーの変更をコミットして新しいイメージを形成します。
bash -c "touch /demo-1.0.0.jar" を実行します。

# ランタイム コンテナによって提供されるサービス ポートを宣言します。これは単なる宣言です。この宣言により、アプリケーションは実行時にこのポートのサービスを開きません。EXPOSE 8080

#コンテナの起動プログラムとパラメータを指定します <ENTRYPOINT> "<CMD>"
エントリポイント ["java","-jar","demo-1.0.0.jar"]

新しいコントローラーファイルを作成する

pom ファイルに Web 依存関係を追加することを忘れないでください。

@レストコントローラ
パブリッククラスtestController{

  @リクエストマッピング("/")
  パブリック文字列テスト(){
    「テストDocker」を返します。
  }

}

Maven パッケージング

パッケージをインストールします:


jar パッケージを生成します:

新しい構成

新しい Dockerfile 実行構成を作成します。


次の情報を追加し、作成した Dockerfile ファイルを見つけて、ポート マッピングを構成します。

Dockerイメージを生成して実行する

新しく作成された Dockerfile 実行構成を実行するだけです。


操作が成功すると、ログ ウィンドウにプロジェクト操作情報が表示されます。


対応するアドレスにアクセスすると、入力した情報が表示されます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
  • Linux+Docker+SpringBoot+IDEA のワンクリック自動デプロイの詳細な手順
  • Idea による Springboot の Docker への Java リモート ワンクリック デプロイ
  • アイデアに基づいてSpringbootプロジェクトをDockerにデプロイする
  • IDEA で Docker を WSL2 にデプロイする詳細なプロセス

<<:  MySQL でテーブルデータをクリアする 2 つの方法とその違い

>>:  VUE無限レベルツリーデータ構造表示の実装

推薦する

CentOS7 ファイアウォール操作コマンドの完全なリスト

目次インストール: 1. ファイアウォールの基本的な使い方2. ファイアウォールd-cmdを設定する...

Vueはログイン認証コードを実装する

この記事では、ログイン認証コードを実装するためのvueの具体的なコードを例として紹介します。具体的な...

nginx を使用して静的リソース サーバーを構築する方法

Windows を例にとると、Linux も実際には同じです。静的リソースサーバーを構築するパソコン...

Linux システムの .bash_profile ファイルの詳細な説明

目次1. 環境変数$PATH: 2. 環境変数を変更します。 3. bash_profileの目的要...

英語: リンクタグはIEでhrefを自動的に補完します

英語: IE では、リンク タグによって href が自動的に補完されます。 Ajax Link T...

Win10でのJDKのインストールと環境変数の設定に関する詳細なチュートリアル

目次序文1. 準備2. インストール3. 環境変数を設定する1. 「新規」をクリックすると、ポップア...

Zabbixを介してデータベース接続情報といくつかの拡張機能をすばやく取得します

背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...

Docker 起動時の ES メモリ オーバーフローの解決方法

jvm.options ファイルを elasticsearch 構成に追加し、スタック サイズを変更...

MySQL における EXISTS と IN の使用法の比較

1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

Docker を使用して Jenkins をインストールするためのサンプル コード

Dockerコンテナのインストール時に遭遇しやすい2つの問題1.ポートはすでに割り当てられています(...

MySQL で '%' を含むフィールドをクエリする方法の詳細な説明 (ESCAPE の使用法)

SQLのlike文では、例えば SELECT * FROM user WHERE username...

Nginx で https をアップグレードする方法

購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...

MySQLインデックスが失敗するいくつかの状況の詳細な分析

1. 先頭のあいまいクエリではインデックスを使用できません (「%XX」や「%XX%」など)コード値...

Ubuntu で nvidia グラフィック ドライバーをインストールする (簡単なインストール方法)

Ubuntu で nvidia グラフィック カード ドライバーをインストールします。同じ方法で ...