Docker デプロイメント Springboot プロジェクト例の分析

Docker デプロイメント Springboot プロジェクト例の分析

この記事は主に、docker デプロイメント springboot プロジェクトのサンプル分析を紹介します。この記事ではサンプル コードを詳細に紹介しており、皆さんの学習や仕事に一定の参考値があります。困っている友人は参考にしてください。

プロジェクトを作成する

ドキュメント

<?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.1.9.RELEASE</バージョン>
    <relativePath/> <!-- リポジトリから親を検索 -->
  </親>
  <groupId>com.topcheer</groupId>
  <artifactId>ドッカー</artifactId>
  <バージョン>0.0.1-SNAPSHOT</バージョン>
  <name>ドッカー</name>
  <description>Spring Boot のデモ プロジェクト</description>
​
  <プロパティ>
    <java.version>1.8</java.version>
    <docker.image.prefix>トップチア</docker.image.prefix>
  </プロパティ>
​
  <依存関係>
    <依存関係>
      <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.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </プラグイン>
       <プラグイン>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <バージョン>1.0.0</バージョン>
      <構成>
        <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名>
        <dockerディレクトリ>src/main/docker</dockerディレクトリ>
        <リソース>
          <リソース>
            <ターゲットパス>/</ターゲットパス>
            <ディレクトリ>${project.build.directory}</ディレクトリ>
            <include>${project.build.finalName}.jar</include>
          </リソース>
        </リソース>
      </構成>
    </プラグイン>
    </プラグイン>
  </ビルド>
​
</プロジェクト>

スタートアップクラス

@SpringBootアプリケーション
@コントローラ
パブリッククラスDockerApplication {
  パブリック静的voidメイン(String[] args) {
    SpringApplication.run(DockerApplication.class、引数);
  }
  @RequestMapping("/user/find")
  @レスポンス本文
  パブリックオブジェクトfindUser(){
    Map<String, String > map = new HashMap<>();
    map.put("名前", "xdclass.net");
    map.put("年齢","28");
    マップを返します。
  }
}

Harbor がインストールされていないため、イメージをプライベート イメージ リポジトリにプッシュできないため、最初に手動で実行します。

mvn installを実行し、dockerfileとjarパッケージを一緒に配置します。

[root@topcheer docker]# ll
総使用量 16452
-rw-r--r-- 1 ルート ルート 168 10月28日 14:24 Dockerfile
-rw-r--r-- 1 ルート ルート 16842487 10月28日 14:17 docker.jar
[root@topcheer docker]# cat Dockerfile
java:8より
ボリューム /tmp
docker.jar と app.jar を追加します。
bash -c 'touch /app.jar' を実行します。
エクスポーズ8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
[root@topcheer docker]#

イメージにコンパイルして起動

[root@topcheer docker]# docker build -f Dockerfile -t boot .
ビルド コンテキストを Docker デーモンに送信 16.85 MB
ステップ 1/6: java:8 から
 ---> d23bdf5b1b1b
ステップ 2/6: ボリューム /tmp
 ---> 35037b5a7791 で実行中
 ---> e96b96457c78
中間コンテナ 35037b5a7791 を削除しています
ステップ 3/6: docker.jar app.jar を追加する
 ---> 06bcfdcff437
中間コンテナ 2e2e5e559ae4 を削除しています
ステップ 4/6: bash -c 'touch /app.jar' を実行します。
 ---> 16441febc271 で実行中
​
 ---> 1779caa23f77
中間コンテナの削除 16441febc271
ステップ5/6: EXPOSE 8080
 ---> 14dd752ce247 で実行中
 ---> 505044f5cdf8
中間コンテナ 14dd752ce247 を削除
ステップ 6/6: ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> 832e4ca95dd2 で実行中
 ---> 1cb7bd139478
中間コンテナ 832e4ca95dd2 を削除しています
1cb7bd139478 を正常に構築しました
[root@topcheer docker]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
最新のブート 1cb7bd139478 約 1 分前 677 MB
registry.cn-hangzhou.aliyuncs.com/dalianpai/topcheer zipkin 17c2bb09f482 6日前 154 MB
docker.io/mysql 最新 c8ee894bd2bd 11日前 456 MB
elasticsearch 最新 874179f19603 4 週間前 771 MB
docker.io/nacos/nacos-server 最新 a4229ac5cc19 4 週間前 710 MB
springbootdemo4docker 最新 cd13bc7f56a0 5 週間前 678 MB
docker.io/tomcat 最新 ee48881b3e82 6 週間前 506 MB
docker.io/rabbitmq 最新 a00bc560660a 6 週間前 147 MB
docker.io/centos-latest 67fa590cfc1c 2か月前 202 MB
docker.io/redis 最新 f7302e4ab3a8 2 か月前 98.2 MB
docker.io/rabbitmq 3.7.16-management 3f92e6354d11 3 か月前 177 MB
docker.io/elasticsearch 6.8.0 d0b291d7093b 5 か月前 895 MB
docker.io/hello-world 最新 fce289e99eb9 10 か月前 1.84 kB
docker.io/java 8 d23bdf5b1b1b 2年前 643 MB
[root@topcheer docker]# docker run -d -p 8080:8080 ブート
882ff5209aa2f40972a914b901750a50320faea65100b33e57b9c8a41533ca0b

テスト

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法
  • Dockerを使用してSpringBootプロジェクトをデプロイする方法
  • SpringbootプロジェクトのDockerデプロイメント実践の詳細な説明
  • Idea による Springboot の Docker への Java リモート ワンクリック デプロイ
  • Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
  • アイデアに基づいてSpringbootプロジェクトをDockerにデプロイする
  • Linux+Docker+SpringBoot+IDEA のワンクリック自動デプロイの詳細な手順
  • Springboot パッケージングを Docker イメージとして実装し、デプロイする
  • SpringbootサービスDockerの自動デプロイを実装する方法
  • アイデアはDockerプラグインを使用してワンクリックの自動デプロイを実現します

<<:  シンプルなタブバー切り替えケースを実現するJavaScript

>>:  insert と select を組み合わせて、「データベース内のフィールドの最大値 + 1 を挿入する」メソッドを実装する

推薦する

Linux netstatコマンドの詳細な説明

目次Linux netstat コマンド1. TCP接続ステータスの詳細な説明2. コマンド形式3....

HTML 描画ユーザー登録ページ

この記事では、HTML描画ユーザー登録ページの具体的な実装コードを参考までに共有します。具体的な内容...

Vueのシンプルストアの詳しい説明

Vue におけるストアの最も単純な応用はグローバル ストレージです。ここでは、相互にジャンプするため...

シンプルなタブバー切り替えコンテンツバーを実装するJavaScript

この記事では、タブバーの切り替えコンテンツバーを簡単に実現するためのJavaScriptの具体的なコ...

Docker コンテナ アプリケーションで避けるべき 10 の悪い習慣

コンテナが企業の IT インフラストラクチャに欠かせない要素となっていることは間違いありません。コン...

単一/複数行テキストを含む div を垂直方向に中央揃えする N 通りの方法 (高さ不明/高さ固定)

この問題について話すとき、垂直方向の中央揃えを設定するための vertical-align 属性が ...

VUEの基本を理解するのに役立つ記事

目次VUEとはVueのコアプラグインVueルーターヴュークスアクシオス要素UI Vue フロントエン...

Linux DMAインターフェースの知識ポイントの詳細な説明

1. 2種類のDMAマッピング1.1. 一貫性のあるDMAマッピング主に長期間使用されるエリアをマッ...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...

MySQL が uuid または snowflake id を主キーとして使用することを推奨しない理由の詳細な分析

前書き: MySQL でテーブルを設計する場合、MySQL では UUID や非連続かつ非繰り返しの...

ウェブデザイナー職の面接でよくある質問と回答

1. ASP.NET Web アプリケーションのテンプレートとは何ですか? それらの違いは何ですか?...

ウェブ クラスターの Docker Stack 展開方法の手順

Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を...

Vue.jsクラウドストレージで画像アップロード機能を実現

序文ヒント:以下はこの記事の主な内容です。以下のケースを参考にしてください。 1. オブジェクトスト...

Docker Desktop で rocketmq をインストールするための非常に詳細なチュートリアル

Dockerデスクトップをインストールするダウンロード先: Docker Desktop for M...

フレックスレイアウトにおける画像変形の解決策の詳細な説明

フレックス レイアウトは現在よく使用されるレイアウト方法ですが、場合によっては小さな問題が発生するこ...