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

推薦する

CSS スタイルにおける中国語フォントのフォントファミリーに対応する英語名の詳細な説明

ソングティ: SimSun太字: SimHeiマイクロソフト YaHei: マイクロソフト YaHe...

MySQLを閉じることができない問題を解決する方法

mysql が閉じない場合の解決策:コンピュータのタスクバーを右クリックしてタスクマネージャーを開き...

ネイティブ Js で実装されたシンプルなシームレス スクロール カルーセルのサンプル コード

シンプルなシームレススクロールカルーセルには多くの抜け穴があり、後から画像を追加するのは非常に不便で...

Ubuntu 20.04 に Xrdp サーバー (リモート デスクトップ) をインストールする方法

Xrdp は、グラフィカル インターフェイスを通じてリモート システムを制御できる Microsof...

HTML テーブルタグチュートリアル (19): 行タグ

<TR> タグの属性は、次の表に示すように、テーブル内の各行のプロパティを設定するために...

better-scrollプラグインのスライドできないバグについて(2021年プラグインで解決)

より良いスクロールの原則親コンテナーであるため、ラッパーの高さはコンテンツのサイズに応じて増加します...

MySQLはデータベースのN+1クエリ問題を解決します

導入HibernateやMyBatisなどのORMフレームワークでは、部門に関連付けられたユーザーオ...

Linux 上での Go 環境の構築のインストールと設定の説明

Linux で Go 環境を構築するのは非常に簡単です。 1. go1.2.1.linux-386....

JavaScript デザインパターンの学習 アダプタパターン

目次概要コードの実装要約する概要アダプタ パターンは、デザイン パターンの動作パターンのパターンです...

CSSは高さと幅を固定した要素の比例表示効果を実現します

padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の...

Vue で円形プログレスバーを実装する例

データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

HTML テーブル マークアップ チュートリアル (18): テーブル ヘッダー

<br />ヘッダーはテーブルの最初の行を参照します。ヘッダー内のテキストは中央揃えで太...

Ubuntuサーバーの一般的なコマンドの概要

以下のコマンドのほとんどは、コンソール/ターミナル/シェルで入力する必要があります。 'su...

初心者向けMySQLシリーズチュートリアル

目次1. 基本概念と基本コマンド1) 基本的な概念2) 基本コマンド2. SQL文の記述順序と実行順...