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

推薦する

HTML におけるいくつかの特殊属性タグの使用法の紹介

以下の属性はブラウザとの互換性があまりありません。 1.transform:rotate(45度) ...

MySQL 8.0 をインストールした後、初めてログインするときにパスワードを変更する問題を解決する

MySQL 8.0.16で初回ログイン時のパスワードを変更する方法を紹介します。 MySQLデータベ...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

高性能なウェブサイトのための14のテクニック

オリジナル: http://developer.yahoo.com/performance/rule...

Vue2.0の双方向データバインディング原則を手動で実装する

一言で言えば: データハイジャック (Object.defineProperty) + パブリッシュ...

Hadoopカウンターとデータクリーニングの適用

データクリーニング (ETL)コアビジネスの MapReduce プログラムを実行する前に、まずデー...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

Linuxシステムの入出力管理とvimの共通機能の詳細な説明

####システム内の入出力の管理#### 1. システムの入力と出力のリダイレクトを理解する入力リダ...

文字列の GBK および GB2312 エンコードとデコードのフロントエンド実装 (概要)

序文プロジェクトを開発しているときに、かなり厄介な問題に遭遇しました。この製品では、判断のためにブラ...

aタグに下線を付け、クリック前後で色を変える方法

コードをコピーコードは次のとおりです。リンクフォントサイズ: 12px;色: #000000;テキス...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

MySQL 上級学習ノート (パート 3): MySQL 論理アーキテクチャの紹介、MySQL ストレージ エンジンの詳細な説明

MySQL 論理アーキテクチャの概要他のデータベースと比較すると、MySQL は、そのアーキテクチャ...

ノードイベントループにおけるイベント実行の順序

目次イベントループブラウザ環境イベントループノード環境イベントループ6つのステージ(1)setTim...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

ウェブサイトのデザインでは色の階層感覚に注意を払う必要があります

最近、私はデザインには階層感覚が必要だと言っています。この階層感覚には、色の重ね合わせや要素の重ね合...