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

推薦する

CSS3 フィルター (フィルタ) ウェブページのグレーまたは黒モードのサンプルコードを実現

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

Docker インストール rocketMQ チュートリアル (最も詳細)

RocketMQ は、Alibaba が設計した分散型のキューベースのメッセージング ミドルウェア...

組み込みオブジェクトに関するJavascriptの基礎

目次1. 組み込みオブジェクトの紹介1.1 数学オブジェクト1.2 数学における方法1.3 日付オブ...

Ubuntu 19.04 インストール チュートリアル (画像とテキストの手順)

1. 準備1.1 VMware 15 をダウンロードしてインストールするダウンロード リンク: h...

フロントエンドJavaScriptのクラス

目次1. クラス1.1 コンストラクタ() 1.2 ゲッターとセッター1.3 これ1.4 静的プロパ...

jsonファイルの書き方の詳細説明

目次JSONとはなぜこの技術なのでしょうか? JSONの使い方- データ形式- メモ- JSには2つ...

js を使用して数字推測ゲームを実装する

先週、先生が私に数字当てゲームをするちょっとした宿題を出しました。とても面白いと思ったので、適当に書...

IDEA を使用して Tomcat を設定し、JSP ファイルを作成する方法

idea を使用して JSP ファイルを書き込む前に、jdk 環境 (ここでは説明しません) と対応...

OpenSSL は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)

1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...

モバイルデバイスにおける適応レイアウトの問題に関する簡単な説明 (レスポンシブ、rem/em、Js ダイナミクス)

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイ...

CentOS 7.4 にソースコードから MySQL 8.0 をインストールするための詳細なチュートリアル

目次1. 環境2. 準備3. MySQL 8.0.11をインストールするMySQL 8 の公式バージ...

Linux で Docker を使用して MySQL をインストールする手順

テスターとして、学習プロセス中に Linux でソフトウェアをインストールする必要が頻繁にある場合が...

React 非親子コンポーネントパラメータ渡しのサンプルコード

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。 ...

子要素の margin-top によって親要素が移動する問題の解決方法

問題の説明今日、ページ スタイルを変更していたときに、子要素にmargin-top設定したのに、子要...