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 のインストール方法 (効果が実証済み)

推薦する

HTML マーキータグの使用例

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルのみをサポートしています。そのため、...

無視されたDOCTYPE記述の分析

doctype もその 1 つです。 <!DOCTYPE HTML PUBLIC "...

uniapp プロジェクトの最適化方法と提案

目次1. 複雑なページデータ領域をコンポーネントにカプセル化する2. 大きな画像の使用を避ける3. ...

CSSアニメーションによるテーブルスクロールカルーセル効果の実装

前回の CSS 回転灯と同じ内容の CSS アニメーションの応用です。これは単なる別のアプリケーショ...

独自の YUM リポジトリを作成する手順

簡単に言うと、ウェアハウスとして使用される仮想マシンの IP は 192.168.149.129 で...

MySQLデータ移行方法とツールの分析

この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...

js と jQuery での Ajax の使用例の詳細

目次ネイティブJS GETリクエストの送信方法投稿リクエストの送信方法パラメータ付きのGETリクエス...

SEATAトランザクションサービスDockerのデプロイ手順の詳細説明

1. データベース認証ステートメントを作成する > データベース seata を作成します。 ...

Nginx/Httpd ロードバランシング Tomcat 設定チュートリアル

前回のブログでは、Nginx と httpd を使用して、逆生成用のバックエンド Tomcat サー...

浮遊する雲のアニメーションを実現するCSS3

操作効果 html <ヘッド> <メタ文字セット='UTF-8'&...

Linuxの相対パスと絶対パスの使用

01. 概要絶対パスと相対パスはシェル環境でよく使用され、それぞれに独自の用途があります。相対パスの...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

Vue2.x と Vue3.x のルーティングフックの違いの詳細な説明

目次vue2.xプレコンセプト:ルーティングフックのカテゴリルーティングとコンポーネントの概念(フッ...

MySQL v5.7.18 解凍バージョンのインストール詳細チュートリアル

MySQLをダウンロード5.1.1.1 より前のバージョン私のコンピュータは64ビットなので、Win...

Vue+Element UI でサマリーポップアップウィンドウを実装するプロセス全体

シナリオ: 検査文書には n 個の検査詳細があり、検査詳細には n 個の検査項目があります。実装効果...