Docker と Intellij IDEA の融合により、Java 開発の生産性が 10 倍向上

Docker と Intellij IDEA の融合により、Java 開発の生産性が 10 倍向上

Idea は Java 開発のための強力なツールであり、SpringBoot は Java エコシステムで最も人気のあるマイクロサービス フレームワークであり、Docker は現在最も注目されているコンテナー テクノロジーです。これらを組み合わせると、どのような化学反応が起こるのでしょうか。

1. 開発前の準備

1. Dockerのインストールについては、https://docs.docker.com/install/を参照してください。

2. Dockerリモート接続ポートを設定する

 : : vi /usr/lib/systemd/system/docker.service を実行します。

下の図に示すように、ExecStartを見つけて、最後に-H tcp://0.0.0.0:2375を追加します。

3. Dockerを再起動する

systemctlデーモンリロード
 systemctl dockerを再起動します

4. ポートを開く

ファイアウォールコマンド --zone=public --add-port=2375/tcp --permanent

5.Ideaはdockerプラグインをインストールして再起動します

6. リモートDockerに接続する

(1)設定を編集する

(2)リモートDockerアドレスを入力する

(3)接続が成功すると、リモートDockerコンテナとイメージが一覧表示されます。

2. 新しいプロジェクト

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

プロジェクト構造図

(1)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>com.fengqi</groupId>
    <artifactId>dockerデモ</artifactId>
    <バージョン>1.0.0</バージョン>
    <relativePath>../pom.xml</relativePath> <!-- リポジトリから親を検索 -->
  </親>
  <groupId>com.fengqi</groupId>
  <artifactId>ウェブ</artifactId>
  <バージョン>1.0.0</バージョン>
  <name>ウェブ</name>
  <description>Spring Boot のデモ プロジェクト</description>
  
 <依存関係>
    <依存関係>
      <groupId>org.springframework.boot</groupId>
      <artifactId>スプリングブートスターター</artifactId>
    </依存関係>
 
    <依存関係>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>テスト</scope>
    </依存関係>
    <依存関係>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </依存関係>
    <依存関係>
      <グループID>log4j</グループID>
      <アーティファクトID>log4j</アーティファクトID>
      <バージョン>1.2.17</バージョン>
    </依存関係>
  </依存関係>
 
  <ビルド>
    <プラグイン>
      <プラグイン>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </プラグイン>
      <プラグイン>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <バージョン>1.0.0</バージョン>
        <構成>
          <dockerディレクトリ>src/main/docker</dockerディレクトリ>
          <リソース>
            <リソース>
              <ターゲットパス>/</ターゲットパス>
              <ディレクトリ>${project.build.directory}</ディレクトリ>
              <include>${project.build.finalName}.jar</include>
            </リソース>
          </リソース>
        </構成>
      </プラグイン>
      <プラグイン>
        <artifactId>maven-antrun-plugin</artifactId>
        <処刑>
          <実行>
            <phase>パッケージ</phase>
            <構成>
              <タスク>
                <コピー todir="src/main/docker" ファイル="target/${project.artifactId}-${project.version}.${project.packaging}"></コピー>
              </タスク>
            </構成>
            <目標>
              <goal>実行する</goal>
            </目標>
          </実行>
        </処刑>
      </プラグイン>
    </プラグイン>
  </ビルド>

(2)src/mainディレクトリにdockerディレクトリを作成し、Dockerfileファイルを作成する

openjdk:8-jdk-alpine から
*.jar app.jar を追加します
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

(3)リソースディレクトリにapplication.propertiesファイルを作成する

ログ記録.config = クラスパス:logback.xml
ログのパス=/home/developer/app/logs/
サーバーポート=8990

(4)DockerApplicationファイルを作成する

@SpringBootアプリケーション
パブリッククラスDockerApplication {
 パブリック静的voidメイン(String[] args) {
 SpringApplication.run(DockerApplication.class、引数);
 }
}

(5)DockerControllerファイルを作成する

@レストコントローラ
パブリッククラスDockerController {
 静的ログ log = LogFactory.getLog(DockerController.class);
 @リクエストマッピング("/")
 パブリック文字列インデックス(){
 log.info("こんにちはDocker!");
 「Hello Docker!」を返します。
 }
}

(6)設定を追加する

コマンドの説明

イメージタグ: イメージ名とタグを指定します。イメージ名は docker-demo、タグは 1.1 です。

ポートのバインド: ホスト ポートをコンテナーの内部ポートにバインドします。形式は[ホストポート]:[コンテナ内部ポート]です。

バインドマウント: ホストディレクトリをコンテナの内部ディレクトリにマウントします。形式は[ホストディレクトリ]:[コンテナ内部ディレクトリ]です。

この springboot プロジェクトは、コンテナの /home/developer/app/logs/ ディレクトリにログを出力します。ホスト ディレクトリをコンテナの内部ディレクトリにマウントすると、ログはコンテナ外のホスト ディレクトリに保存されます。

(7) Mavenパッケージング

(8)走る

ここで、イメージ名はdocker-demo:1.1で、dockerコンテナはdocker-serverであることがわかります。

(9)成功した​​手術

(10)ブラウザアクセス

(11) ログ表示

それ以来、Springboot プロジェクトはアイデアを通じて Docker に正常にデプロイされました。 Java Web プロジェクトのデプロイがこんなに簡単で便利だなんて想像もつきません!

最後に、関連する学習チュートリアルを皆さんと共有したいと思います。

https://www.bilibili.com/video/BV14t411z77T

IDEAチュートリアル

https://www.bilibili.com/video/BV1PZ4y1j7QK

Java 開発の生産性を 10 倍に向上させる Docker meets Intellij IDEA に関するこの記事はこれで終わりです。Docker meets IDEA に関するその他の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
  • IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル
  • SpringBoot のパッケージ化と Docker へのアップロード、およびマルチインスタンス デプロイメントの実装に関する簡単な分析 (IDEA バージョン)
  • アイデアに基づいてSpringbootプロジェクトをDockerにデプロイする
  • Idea による Springboot の Docker への Java リモート ワンクリック デプロイ

<<:  MySQL のデータ削除とデータ テーブル メソッドの例

>>:  jsを使用してスライダーをドラッグする効果を実現します

推薦する

MySQL OOM (メモリオーバーフロー) の解決策

OOM は「Out Of Memory」の略で、メモリオーバーフローを意味します。メモリ オーバーフ...

Vue3を使用してjsで呼び出せるコンポーネントを実装する

目次序文1. 従来のVueコンポーネント1. メインコンポーネントコード: 2. 使用方法3. 成果...

SQL でテーブルにフィールドとコメントを追加する方法

1. フィールドを追加します。 alter table テーブル名 ADD フィールド名 タイプ;例...

最高の無料英語フォント33選を紹介

チャンクファイブフリータイプファミリーCuprum JAH I フリーフォントイェセヴァブークレフィ...

.htaccess を使用して特定の IP からの Web サイトへのアクセスを禁止する方法

序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...

HTML で JavaScript を使用する

<script> タグHTML5では、スクリプトには次の属性があります: async、d...

nginxのデフォルトポートを変更する方法の詳細な説明

まず設定ファイルがどこにあるか調べる nginx.confはどこにありますかこれらのディレクトリを調...

Bash の山括弧の深い理解 (初心者向け)

序文Bash には、ls、cd、mv などの重要な組み込みコマンドが多数あるほか、grep、awk、...

MySQL遅延レプリケーションライブラリ方式の詳細な説明

簡単に言えば、遅延レプリケーションとは、スレーブ データベースがマスター データベースより 1 時間...

一時ファイルを作成できないために MySQL が起動できない問題を解決する方法

問題の説明最近、仕事中に問題が発生しました。MySQL が起動に失敗しました。エラー ログは次のとお...

ローカル yum ソースの設定、国内 yum ソースの設定、epel ソースの設定を行う Linux の手順

1. ローカルyumソースを設定する1. ISOイメージをマウントする マウント -o loop /...

Vue で AES.js を使用する詳細な手順

AES暗号化の使用データ転送の暗号化と復号化処理 --- AES.js最初のステップ: vue に ...

HTML チュートリアル、簡単に学べる HTML 言語 (2)

*******************HTML言語入門(パート2)*****************...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

Dockerカスタムネットワークの詳細な紹介

目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...