DockerのIDEA構成プロセス

DockerのIDEA構成プロセス

IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のあるデプロイメント コンテナーです。

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

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

ExecStartを見つけて、最後に -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock を追加します。

ここに画像の説明を挿入

Dockerを再起動する

 systemctlデーモンリロード
 systemctl ドッカーを起動する

ポート2375を開く

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

2. IDEAにDockerプラグインをインストールする

1. ファイル->設定->プラグインでdocker統合を検索します

ここに画像の説明を挿入

インストールが成功したらIDEAを再起動します

3. Springbootプロジェクトを作成し、リモートdocker pom.xmlへの接続を構成する

<?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.4.2</バージョン>
    <relativePath/> <!-- リポジトリから親を検索 -->
  </親>
  <グループ ID>com.docker</グループ ID>
  <artifactId>アイデア-docker-デモ</artifactId>
  <バージョン>0.0.1-SNAPSHOT</バージョン>
  <name>アイデア-docker-デモ</name>
  <description>Spring Boot のデモ プロジェクト</description>
  <プロパティ>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <docker.image.prefix>com.docker</docker.image.prefix>
    <java.version>1.8</java.version>
  </プロパティ>
  <依存関係>
    <依存関係>
      <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.projectlombok</groupId>
      <artifactId>ロンボク</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>
            <構成>
              <タスク>
                <コピー先ディレクトリ="src/main/docker"
                   ファイル="target/${project.artifactId}-${project.version}.${project.packaging}"></コピー>
              </タスク>
            </構成>
            <目標>
              <goal>実行する</goal>
            </目標>
          </実行>
        </処刑>
      </プラグイン>

    </プラグイン>
  </ビルド>

</プロジェクト>

アプリケーションプロパティ

サーバーポート=8887

ログ記録.config = クラスパス:logback.xml
ログのパス=/home/docker_demo/app/logs/

ログバック

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 秒">

  <contextName>ログバック</contextName>
  <プロパティ名="log.path" 値="/home/docker_demo/app/logs/docker_demo.log"/>

  <アペンダー名="コンソール" クラス="ch.qos.logback.core.ConsoleAppender">
    <エンコーダ>
      <パターン>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</パターン>
    </エンコーダ>
  </アペンダー>

  <アペンダー名="ファイル" クラス="ch.qos.logback.core.rolling.RollingFileAppender">
    <ファイル>${log.path}</ファイル>
    <ローリングポリシークラス="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <ファイル名パターン>${log.path}.%d{yyyy-MM-dd}.zip</ファイル名パターン>
    </ローリングポリシー>
    <エンコーダ>
      <パターン>%date %level [%thread] %logger{36} [%file : %line] %msg%n
      </パターン>
    </エンコーダ>
  </アペンダー>

  <ルートレベル="情報">
    <アペンダー参照 ref="コンソール"/>
    <appender-ref ref="ファイル"/>
  </ルート>

</構成>

docker リモートアドレスを設定する

ここに画像の説明を挿入

プロジェクトの下にDockerfileファイルを作成する

ここに画像の説明を挿入

Dockerfile の内容:

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

Docker設定を追加する

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

コマンドの説明
イメージタグ: イメージ名とタグを指定します。イメージ名は docker-demo、タグは 1.1 です。
ポートのバインド: ホスト ポートをコンテナーの内部ポートにバインドします。形式は[ホストポート]:[コンテナ内部ポート]です。
バインドマウント: ホストディレクトリをコンテナの内部ディレクトリにマウントします。形式は[ホストディレクトリ]:[コンテナ内部ディレクトリ]です。このSpringbootプロジェクトはコンテナ内のログを出力します
/home/docker_demo/app/logs/ ディレクトリ。ホスト ディレクトリをコンテナ内のディレクトリにマウントすると、ログはコンテナ外のホスト ディレクトリに保存されます。

3. プロジェクトのパッケージ化とDockerへのデプロイ

ここに画像の説明を挿入
ここに画像の説明を挿入

プロジェクト開始成功

ここに画像の説明を挿入

インターフェースに直接アクセスしてログファイルを表示できます

ここに画像の説明を挿入

概要: idea を通じて SpringBoot プロジェクトを Docker にデプロイするのは簡単で便利です。

IDEA で Docker を構成するプロセスに関するこの記事はこれで終わりです。 IDEA で Docker を構成する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。 今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 最新のidea2021最新のアクティベーション超詳細なチュートリアル
  • IDEAターゲットフォルダがどんどん大きくなっていく問題を解決
  • Intellij idea エラーについて: エラー: Java はリリース バージョン 5 をサポートしていません
  • Intellij idea のエラー報告の問題を永久に解決します: エラー: Java はリリース バージョン 5 をサポートしていません
  • 一般的な Java プロジェクトの作成と Java ファイルの作成および実行に関する IntelliJ IDEA チュートリアル
  • IDEA Gradle ビルド エラー「原因: zip END ヘッダーが見つかりません」を解決する
  • IDEAがCドライブのスペースを占有しすぎる問題を解決

<<:  202 無料の高品質 XHTML テンプレート (1)

>>:  初心者向けの MySQL のインストール方法 (効果が実証済み)

推薦する

フォント名に従ってフォントを呼び出すと、ブラウザに必要なフォントが表示されます。

質問 1: ブラウザに必要なフォントを表示するように指示するにはどうすればよいでしょうか? フォント...

Linux リモート コントロール Windows システム プログラム (3 つの方法)

場合によっては、Windows システム上のプログラムを Linux 上でリモートで実行する必要があ...

HTML でテーブルを分割および結合する (colspan、rowspan)

このコードは水平マージを示しています。 <!DOCTYPE html PUBLIC "...

はじめに: HTML の基本的なタグと属性の簡単な紹介

HTML はタグと属性で構成されており、これらを組み合わせてブラウザにページの表示方法を指示します。...

js が CSS 属性 (値) のサポートを決定して通知する状況の分析

新しい CSS 機能を使用する場合、その互換性は常に考慮されます。おそらく、その互換性、どのブラウザ...

ウェブ開発におけるクロスドメインの理由に対する複数のソリューション

目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...

vue.js パッケージ化プロジェクトの後の空白ページの解決策

Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...

16進カラーコード(完全版)

赤とピンク、およびそれらの 16 進コード。 #990033 #CC6699 #FF6699 #FF...

Mybatis ページングプラグイン pageHelper の詳細な説明と簡単な例

Mybatis ページングプラグイン pageHelper の詳細な説明と簡単な例動作フレームワーク...

少なくとも7日間連続して注文を行ったユーザーに対するSQLクエリ

テーブルを作成するテーブル order(id varchar(10),date datetime,o...

Windows はリモート デスクトップが長時間自動的に切断されるのを防ぎます

Windows リモート デスクトップを使用してサーバーに接続したことがある人なら、リモート デスク...

Dockerを使用してLaravel開発環境を構築するための完全な手順

序文この記事では、Docker を使用して、ローカル コンピューターにインストールされている開発スイ...

ReactRouterの実装

ReactRouterの実装ReactRouterはReactのコアコンポーネントです。主にReac...

Mysql が CPU を過剰に占有する場合の最適化方法 (必読)

Mysql が CPU を占有しすぎる場合、どこから最適化を開始すればよいでしょうか? CPU 使...