IDEA が docker を統合して springboot プロジェクトを展開するプロセス全体

IDEA が docker を統合して springboot プロジェクトを展開するプロセス全体

1. IDEAはdockerプラグインをダウンロードします

ここでは詳細には触れませんが、他のプラグインと同じようにインストールしてください。

2. クラウドサーバーDocker

注: 私のサーバーはcentOS 7を使用しています

2.1 Dockerのインストール

https://www.jb51.net/article/213611.htm

2.2 Dockerサービスを停止する

Docker サービスを再起動するときにエラーが発生しないようにするには、まず Docker サービスを停止してから構成ファイルを変更するのが最適です。

Docker を停止する前に、まず実行中のコンテナを停止する必要があります。そうしないと、後でコンテナを起動するときにエラーが発生する可能性があります。

実行中のコンテナを停止します。

docker stop [コンテナID]

次にdockerサービスを停止します

systemctl ドッカーを停止する

2.3 Docker設定ファイルの変更

HTTP を使用して IDEA をサーバー上の Docker に接続するには、Docker 構成ファイルを次のように変更する必要があります。

vim /usr/lib/systemd/system/docker.service

Execstart 行を変更し、次の内容に置き換えて、HTTP リモート接続用にポート 2375 を開きます。

実行開始=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.4 設定ファイルを更新する

コマンドは次のとおりです。

systemctlデーモンリロード

設定ファイルが有効かどうかをテストするには、サーバー上で次のコマンドを入力します。JSON 文字列の内容が表示されれば、ファイルは有効です。

カール http://127.0.0.1:2375/バージョン

2.5 Dockerサービスを開始する

コマンドは次のとおりです。

systemctl dockerを再起動します

2.6 ファイアウォールにポート2375を追加する

コマンドは次のとおりです。

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

ファイアウォールを再起動します。

ファイアウォール-cmd --reload

2.7 Alibaba Cloudがセキュリティグループルールを追加

ここで、インスタンス ページでセキュリティ グループを入力し、ルールを構成してポート 2375 を開く必要があることに注意してください。

2.8 リモートHTTP接続のテスト

ローカルブラウザにhttp://127.0.0.1:2375/versionと入力します。同様に、JSON 文字列が表示されれば、HTTP 接続が可能です。

この時点で、IDEA を使用して dokcer を統合できます。

3. Mavenプロジェクトのパッケージ化

3.1 プラグインのパッケージ化

pomファイルにspringbootパッケージングプラグインを追加する

<プラグイン>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</プラグイン>

3.2 リソースファイルのパッケージ化とパッケージ化後の場所

Java ソース ファイルをパッケージ化するだけでなく、XML/YML/プロパティ/HTML ファイルなどのリソース ファイルもパッケージ化する必要があります。ただし、HTML ファイルがパッケージ化される場所には注意してください。HTML ファイルは META-INF/resources ディレクトリに配置する必要があります。そうしないと、jar パッケージを起動した後に HTML ページにアクセスできなくなります。

<リソース>
    <リソース>
        <ディレクトリ>src/main/java</ディレクトリ>
        <!--ここではマッパー ファイルを java ディレクトリに配置するので、コンパイル場所を宣言する必要があります-->
        <含まれるもの>
            <include>**/*.xml</include>
        </includes>
        <フィルタリング>真</フィルタリング>
    </リソース>
    <リソース>
        <!--yml 構成ファイルのコンパイル場所を宣言します-->
        <ディレクトリ>src/main/resources</ディレクトリ>
    </リソース>
    <リソース>
        <!-- HTML ファイルのコンパイル場所を宣言し、コンパイルされたファイルを指定された場所に配置します -->
        <ディレクトリ>src/main/webapp</ディレクトリ>
        <targetPath>META-INF/リソース</targetPath>
    </リソース>
</リソース>

3.3 Dockerプラグイン

注意すべき点が 2 つあります。1 つ目は、Docker イメージ名の前にプレフィックスが必要であり、プレフィックスは [プレフィックス]:[イメージ名]:[バージョン番号] で構成されます。2 つ目は、イメージ名を指定するときに大文字を含めないことです。

プロジェクト情報では名前とバージョンの両方が使用されます

<groupId>組織チーム</groupId>
<artifactId>クールなミーティング</artifactId>
<バージョン>1.0-SNAPSHOT</バージョン>
<name>クールミーティング</name>
<description>docker は会議を開始します</description>

<プロパティ>
    <java.version>1.8</java.version>
    <docker.image.prefix>チーム</docker.image.prefix>
</プロパティ>


<プラグイン>
    <プラグイン>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </プラグイン>
    <!-- tag::plugin[] -->
    <プラグイン>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <バージョン>1.0.0</バージョン>
        <構成>
            <dockerホスト>http://127.0.0.1:2375</dockerホスト>
            <!--画像名には大文字は使用できません-->
            <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名>
            <!--Dockerfile の場所-->
            <dockerディレクトリ>${project.basedir}/src/main/docker</dockerディレクトリ>
            <リソース>
                <リソース>
                    <ターゲットパス>/</ターゲットパス>
                    <!--ターゲットの場所-->
                    <ディレクトリ>${project.build.directory}</ディレクトリ>
                    <!--jar パッケージと Dockerfile を同じディレクトリに配置します-->
                    <include>${project.build.finalName}.jar</include>
                </リソース>
            </リソース>
        </構成>
    </プラグイン>
    <!-- end::plugin[] -->

    <プラグイン>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <構成>
            <skipTests> 真</skipTests>
        </構成>
    </プラグイン>
</プラグイン>

Dockerfile ファイルは以下のとおりです。ファイルを作成する際は、D を大文字にする必要があることに注意してください。/meetingMS.jar は書きやすいようにエイリアスになっています。

java:8より
ボリューム /tmp
coolmeeting-1.0-SNAPSHOT.jar /meetingMS.jarを追加します。
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/meetingMS.jar"]

3.4 クリーン、インストール、dockerビルド

まずMavenを使ってクリーンアップとインストールを行い、次にMavenプラグインdockerを使ってビルドします。

ここに画像の説明を挿入

パッケージ化されたファイルのディレクトリ:

ここに画像の説明を挿入

コンテナを起動する

ここに画像の説明を挿入

起動パラメータを設定する

ここに画像の説明を挿入

4. 遭遇した落とし穴

  • 画像名の問題(大文字は使用できません)
  • Springboot 構成ファイル application.yml をパッケージ化できない
  • パッケージ化後にHTMLページにアクセスできない

5. 参考文献

jar としてパッケージ化された Springboot は jsp または html にアクセスできません (404 エラー)

yml またはプロパティ ファイルがスキャンされない場合について

Jarパッケージを実行するときに起動ポートを指定します

スタックオーバー

IDEAはDockerを統合し、SpringBootアプリケーションを迅速にデプロイします

IDEAはDockerを統合して迅速な展開を実現

これで、IDEA が docker を統合して springboot プロジェクトをデプロイする方法に関するこの記事は終了です。IDEA が docker を統合して springboot プロジェクトをデプロイする方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • IDEA2021.2 で docker を設定して、Springboot プロジェクトをイメージ化し、ワンクリックでリリースする方法
  • Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
  • IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル
  • アイデアに基づいてSpringbootプロジェクトをDockerにデプロイする
  • IDEA の Docker プラグインを介して SpringBoot プロジェクトをデプロイするプロセスの詳細な説明

<<:  アニメーションの再生と一時停止を制御するための CSS のヒント (非常に実用的)

>>:  HTML ドキュメントに CSS を埋め込む一般的な 3 つの方法

推薦する

Vue Notepadの例の詳細な説明

この記事の例では、メモ帳機能を実装するためのVueの具体的なコードを参考までに共有しています。具体的...

MySQL 5.7.21 のインストールとパスワード設定のチュートリアル

MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...

Alibaba Cloud ECS サーバーの開始プロセス (初心者必読のチュートリアル)

1. Alibaba Cloudは、個人のニーズに応じて適切なクラウドサーバーを選択し、CPU、メ...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

JavaScript のデシェイクとスロットリングの例

目次安定スロットル: 手ぶれ防止: 一定時間内に最後のタスクのみを実行します。スロットル: 一定期間...

JS は複数のタブを切り替えるカルーセルを実装します

カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰...

MacでDockerがホストマシンにpingできない問題を解決する

解決Docker for Macに付属するLinux仮想マシン(軽量ですが、ソケットファイルを使用し...

Spark と Scala を使用して Apache アクセス ログを分析する方法

インストールまず、Java と Scala をインストールし、次に Spark をダウンロードしてイ...

マウスを動かしたときに画像のズーム効果とゆっくりとした遷移​​効果を実現するCSSのサンプルコード

transform:scale()比例したズームインまたはズームアウトを実現できます。 transi...

Vue画像拡大鏡コンポーネントのカプセル化と使用方法の詳細な説明

Vue画像拡大鏡コンポーネントパッケージに基づいて、参考までに具体的な内容は次のとおりです。画像拡大...

MySQLでデータベースデータ保存ディレクトリを変更する方法

序文MySQL データベースのデフォルトのデータベース ファイルは /var/lib/mysql に...

11 の素晴らしい JavaScript コード リファクタリングのベスト プラクティスの概要

目次1. 関数の抽出2. 重複した条件付きスニペットを結合する3. 条件分岐文を関数に抽出する4. ...

フォーム入力ボックスに関するWebデザインのヒント

1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...

mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...