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

推薦する

Mariadb リモート ログイン構成と問題解決

序文:インストール プロセスについては詳しく説明しません。問題に直接触れましょう。MySQL のリモ...

Web 標準アプリケーション: Tencent QQ ホームページの再設計

Tencent QQのホームページがリニューアルされ、Webフロントエンド開発がますます注目を集めて...

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

ドラッグ効果を実現するための純粋なCSSコード

目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...

jQuery はテーブルのページング効果を実装します

この記事では、テーブルのページング効果を実現するためのjQueryの具体的なコードを参考までに紹介し...

mysql8.0.21 のダウンロードとインストールに関する詳細なチュートリアル

公式ウェブサイトアドレス: https://www.mysql.com/インストールの提案: インス...

MySQL 5.7.29 + Win64 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

公式サイトをダウンロード自分に合ったバージョンを選択してダウンロードしてください。 ダウンロードをク...

Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御

目次1. バックグラウンドで実行されるジョブ2. 信号を使用してプロセスを制御する基本的なプロセス管...

JavaScriptの浅いコピーと深いコピーについての簡単な説明

目次1. 直接譲渡2. 浅いコピー3. ディープコピー1. JSONオブジェクトメソッド2. 再帰コ...

Linux でのマルチスレッドにおけるフォークの紹介

目次質問:ケース(1)子スレッドを作成する前にフォークするケース(2)子スレッドを作成した後にフォー...

js の一般的でない演算子と演算子の概要

一般的な演算子と JavaScript の演算子の概要カテゴリオペレーター算術演算子+、–、*、/、...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...

Vue3はJingdong製品詳細ページの虫眼鏡効果コンポーネントをカプセル化します

この記事では、Jingdong製品詳細ページの虫眼鏡効果コンポーネントに似たvue3カプセル化の具体...

HTML ウェブページのブラウザタイトルバーに小さなアイコンを表示する方法

この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...

Linux オペレーティング システムで ssh/sftp を構成して権限を設定する方法

FTP と比較すると、SSH ベースの sftp サービスは、セキュリティが優れており (非プレーン...