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無限レベルツリーデータ構造表示の実装

推薦する

数千万のMySQLデータ量を素早くページ分割する方法

序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

Vue でスロットを使用する方法についての簡単な説明

定義と使用方法:コンポーネントのテンプレートでスロットタグの定義を使用します。デフォルトの表示値は、...

jQueryは居住地を選択するためのドロップダウンボックスを実装します

居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...

CocosCreatorでWeChatゲームを作成する方法

目次1. WeChatパブリックプラットフォームからWeChat開発者ツールをダウンロードする2. ...

CentOS/RHEL システムで VLAN タグ付きイーサネット カードを使用する方法

シナリオによっては、Linux サーバー (CentOS/RHEL) の同じイーサネット カード (...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

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

この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...

SSL を実装するために nginx を設定する方法の例

環境説明サーバーシステム: Ubuntu 18.04 64ビットnginx: 1.14この記事では主...

PHPのmail()関数を使用してメールを送信する

PHPのメール関数を使用してメールを送信するmail()関数はメールサーバーに接続し、サーバーと対話...

XHTMLタグは適切に使用する必要があります

<br />123WORDPRESS.COM の以前のチュートリアルでは、Web ページ...

MySQL の general_log ログの知識ポイントの紹介

以下の操作デモンストレーションはすべて MySQL バージョン 5.6.36 に基づいています。仕事...

@media レスポンシブ CSS を使用してさまざまな画面に適応する例

定義と使用@media クエリを使用すると、さまざまなメディア タイプに異なるスタイルを定義できます...

スキン効果を実現するJavaScript(背景の変更)

この記事では、スキン変更効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

Elementはスクリプトを使用して新しいコンポーネントを自動的に構築します

目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...