Springboot アプリケーションを迅速にデプロイするために Docker とアイデアを統合する詳細なプロセス

Springboot アプリケーションを迅速にデプロイするために Docker とアイデアを統合する詳細なプロセス

1. はじめに

コンテナ化という言葉は誰もが知っていると思います。コンテナ化という言葉を聞くと、docker、k8s、jenkins、rancher などを思い浮かべるかもしれません。そこで今日は、idea が docker を使用して SpringBoot アプリケーションを迅速にデプロイする方法についてお話します。

2. 環境とツール

  • Windows 10 (開発)
  • Centos 7.6 (デプロイメント)
  • アイデア
  • ドッカー
  • xシェル

3. Dockerをインストールし、リモート接続を構成する

インターネット上で Docker をインストールするには多くの手順があるため、ここでもう一度それらについて説明します。

最初に更新

sudo yum アップデート

最新のdockerをインストールする

yum で docker をインストール -y

図のように設置後

Dockerを起動する

systemctl ドッカーを起動する

docker imagesを使用すると、イメージのステータスを表示できます。次の図は、起動が成功したことを示しています (現在、イメージはありません)

ここに画像の説明を挿入

下記のように表示される場合は起動に失敗したことを意味します

ここに画像の説明を挿入

dockerリモート接続を開き、 docker.serviceファイルを編集します。

vim /lib/systemd/system/docker.service

開封後の内容は以下の通りです。

ここに画像の説明を挿入

緑色のカーソルがある行に次のコードを追加します。

# centos7 以上 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
# centos7 以下 ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

ここでは 12377 などの他のポートを使用します。変更後の内容は以下のようになります。

ここに画像の説明を挿入

保存したら、設定ファイルを再読み込みして Docker を再起動します。

systemctlデーモンリロード 
systemctl dockerを再起動します

ポート12377がリッスンされているかどうかを確認するには、 lsof -i:12377を実行します。

ここに画像の説明を挿入

クラウドサーバーを使用している場合は、12377 ファイアウォール ルールを有効にする必要があります。デフォルトのポート 2375 を使用する場合は、仮想マシンまたはイントラネットでのみ使用しても問題ありません。パブリック ネットワークに公開されている場合は、翌日に CPU がいっぱいになり、大量の馬や採掘プログラムがマウントされていることに気付くでしょう。時間のある学生は、セキュリティ構成をさらに構成できます。ここで検索できます。

4. アイデアはリモートDockerに接続します

Dockerプラグインをインストールする

ここに画像の説明を挿入

設定接続がインストールされたら、以下に示すように設定内の場所を見つけます。

ここに画像の説明を挿入

次の形式で TCP ソケット上の Docker アドレスを設定します。
tcp://ip:12377 。入力後、しばらく待つと接続テストが行​​われます。接続に成功すると上図のように表示されます。 5. Springbootプロジェクト構成docker pom構成ブロガーの現在のプロジェクトパッケージ方法はjarパッケージであり、pomのプロパティ構成は次のとおりです。

<プロパティ>
    <!-- プロパティ ノード "springboot" に Docker イメージのプレフィックスを設定します -->
    <docker.image.prefix>スプリングブート</docker.image.prefix>
</プロパティ>

ビルドは次のように構成されます。

 <ビルド>
        <finalName>docker-デモ</finalName>
        <プラグイン>
            <プラグイン>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <バージョン>${spring-boot.version}</バージョン>
            </プラグイン>
            <プラグイン>
                <!-- docker-maven プラグイン -->
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <バージョン>1.0.0</バージョン>
                <構成>
                    <dockerホスト>http://ip:12377</dockerホスト>
                    <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名>
                    <dockerディレクトリ>src/main/docker</dockerディレクトリ>
                    <リソース>
                        <リソース>
                            <ターゲットパス>/</ターゲットパス>
                            <ディレクトリ>${project.build.directory}</ディレクトリ>
                            <include>${project.build.finalName}.jar</include>
                        </リソース>
                    </リソース>
                </構成>
            </プラグイン>
        </プラグイン>
    </ビルド>

resourcesはパッケージ化されたjarを見つけるためのもので、dockerDirectoryはプロジェクトで設定されたDockerfile見つけるためのもので、imageNameはイメージ名です。

Dockerfile を作成します (Dockerfile はキャメルケースではないことに注意してください)
構造は下図の通りです

ここに画像の説明を挿入

Dockerfile ファイルの内容:

FROM williamyeh/java8 # ソースは docker search java8 を使用して検索できます。VOLUME /tmp
docker-demo.jar を追加します /app/docker-demo.jar
#COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
エントリポイント ["java", "-jar", "/app/docker-demo.jar"]

FROM : ベースイメージを指定します。最初のコマンドである必要があります。
VOLUME : 永続的なディレクトリを指定するために使用します
ADD : コンテナにローカルファイルを追加します。Tar ファイルは自動的に解凍されます (ネットワーク圧縮リソースは解凍されません)。wget と同様に、ネットワークリソースにアクセスできます。
ENTRYPOINT : コンテナを実行可能にする設定

他の指示は自分で検索できます

  • ここまでで必要な設定は完了です。
  • アイデアの右側にあるMavenウィンドウを見つけて、cleanを実行します。

ここに画像の説明を挿入

クリーンアップが完了したら、パッケージごとにパッケージを実行します。

ここに画像の説明を挿入

次に、図に示すようにdocker:buildを実行します。

ここに画像の説明を挿入

このプロセスでは、ターゲットディレクトリにdockerフォルダが作成され、 Dockerfileファイルと生成された jar パッケージがコピーされます。次に、Dockerfile 内の構成に従って、ベースイメージがプルされ、jar がサーバーの指定された場所に転送され、イメージが作成されます。ビルドが成功したら、アイデアの下部にあるServicesをクリックします。

ここに画像の説明を挿入

ウィンドウは次のようになります

ここに画像の説明を挿入

Docker をダブルクリックして接続します。接続が成功すると、イメージとコンテナの実行ステータスが表示されます。

ここに画像の説明を挿入

次に、springboot/**:latestイメージを右クリックしてコンテナを作成します。

ここに画像の説明を挿入

設定を作成するための作成オプションがポップアップ表示されます

ここに画像の説明を挿入

コンテナ名と実行オプションを設定し、最後に「実行」をクリックしてコンテナを実行します。サービス ウィンドウで、コンテナの実行ログを確認できます。

ここに画像の説明を挿入

ここまでで、dockerを統合してSpringbootアプリケーションを素早くデプロイするというアイデアは完成しました。jenkins+k8s+dockerの使い方については後ほどまとめます。

これで、Springboot アプリケーションの idea integration docker quick deploy に関するこの記事は終了です。さらに関連する idea docker deploy springboot コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SpringBoot アプリケーションの Docker デプロイメントの実装手順
  • SpringBoot と Docker の統合の詳細なプロセス
  • SpringBoot プロジェクトの Docker クイック デプロイメントの紹介

<<:  2012年のベストWebデザイン作品レビュー[パート1]

>>:  H5でクリックされたときにaタグの背景色をキャンセルする方法

推薦する

Webページ作成の質問: 画像ファイルのパス

この記事は 123WORDPRESS.COM Lightning によるオリジナルです。転載する際に...

Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに...

MySQL Order By 複数フィールドのソートルールのコード例

事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...

Webpack4プラグインの実装原理についての簡単な説明

目次序文知る練習すれば完璧になる序文wabpack では、ローダーの他にプラグインがコア機能です。プ...

JavaScript 改ざん防止オブジェクトの使用例

目次JavaScript 改ざん防止オブジェクト1. 拡張不可能なオブジェクト2. 封印された物体3...

練習と面接のための Linux シェル スクリプトのヒント 9 つを共有する

予防1) 先頭にインタープリターを追加します: #!/bin/bash 2) 構文のインデントに 4...

HTMLファイルとは何ですか?HTMLファイルを開く方法

HTML は Hypertext Markup Language の略です。現在、ほとんどの Web...

MySQL データベース監視ソフトウェア lepus の使用上の問題と解決策

lepus3.7 を使用して MySQL データベースを監視中に、次の問題が発生しました。このブログ...

display:olck/none を使用してメニューバーを作成する方法

display:bolck/none によるメニューバーの完成の効果 図 1:まず、完成したエフェク...

フロントエンド開発者に何百万ドルもの価値をもたらす 10 のスキル

フロントエンド開発者が習得する必要のあるスキル。これらのスキルにより、フロントエンド開発者の価値は数...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

Dayjs を使用して Vue で一般的な日付を計算する方法

vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...

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

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

Vue+Bootstrapでシンプルな学生管理システムを実現

参考までに、vueとbootstrapを使って比較的シンプルな生徒管理システムを作りました。具体的な...

ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...