Dockerを使用してSpring Bootプロジェクトをデプロイする手順

Dockerを使用してSpring Bootプロジェクトをデプロイする手順

シンプルなSpringbootプロジェクトを作成する

1. pom.xmlでSpring Boot 2.2.10関連の依存関係を使用する

<親>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <バージョン>2.2.10.RELEASE</バージョン>
</親>

2. Webとテストの依存関係を追加する

<依存関係>
     <依存関係>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
    </依存関係>
 <依存関係>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>テスト</scope>
 </依存関係>
</依存関係>

3. hello()メソッドを含むDockerControllerを作成し、アクセスするとhello,nihaoを返します。

@レストコントローラ
パブリッククラスDockerController {
 
    @RequestMapping("/hello")
    パブリック文字列hello() {
        「hello,nihao」を返します。
    }
}

4. スタートアップクラス

@SpringBootアプリケーション
パブリッククラスDockerApplication {

 パブリック静的voidメイン(String[] args) {
  SpringApplication.run(DockerApplication.class、引数);
 }
}

追加したら、プロジェクトを起動します。起動に成功したら、ブラウザで http://localhost:8080/hello にアクセスします。ページには hello,nihao が返され、Spring Boot プロジェクトが正常に構成されていることが示されます。

Dockerを使用してSpring Bootプロジェクトをデプロイする

1. プロジェクトをjarパッケージにパッケージ化し、サーバーにコピーしてテストします。

[root@jiangwang springbootDemo]# ls
demo-0.0.1-SNAPSHOT.jar Dockerファイル
[root@jiangwang springbootDemo]# java -jar demo-0.0.1-SNAPSHOT.jar 

  . ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|================|___/=/_/_/_/
 :: Spring Boot :: (v2.2.10.RELEASE)

2021-03-18 14:49:18.241 INFO 12886 --- [ main] com.example.demo.DemoApplication : PID 12886 の jiangwang で DemoApplication v0.0.1-SNAPSHOT を開始しています (/home/springbootDemo/demo-0.0.1-SNAPSHOT.jar が /home/springbootDemo で root によって開始されました)
2021-03-18 14:49:18.244 INFO 12886 --- [ main] com.example.demo.DemoApplication: アクティブなプロファイルが設定されていません。デフォルトのプロファイルにフォールバックします: default
2021-03-18 14:49:19.924 INFO 12886 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat がポート 8080 (http) で初期化されました
2021-03-18 14:49:19.938 INFO 12886 --- [ main] o.apache.catalina.core.StandardService : サービスを開始しています [Tomcat]
2021-03-18 14:49:19.938 INFO 12886 --- [ main] org.apache.catalina.core.StandardEngine : サーブレット エンジンを起動しています: [Apache Tomcat/9.0.38]
2021-03-18 14:49:20.013 INFO 12886 --- [ main] oaccC[Tomcat].[localhost].[/] : Spring 埋め込み WebApplicationContext を初期化しています
2021-03-18 14:49:20.014 INFO 12886 --- [ main] wscServletWebServerApplicationContext: ルート WebApplicationContext: 初期化が 1657 ミリ秒で完了しました
2021-03-18 14:49:20.321 INFO 12886 --- [ main] ossconcurrent.ThreadPoolTask​​Executor: ExecutorService 'applicationTaskExecutor' を初期化しています
2021-03-18 14:49:20.520 INFO 12886 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat がポート 8080 (http) でコンテキスト パス '' で起動しました
2021-03-18 14:49:20.523 INFO 12886 --- [ main] com.example.demo.DemoApplication : DemoApplication を 2.899 秒で開始しました (JVM は 3.369 秒実行中)

2. Spring Boot の起動ログを見ると、環境設定に問題がないことがわかります。Dockerfile ファイルを編集します。

java:8より
*.jar /app.jar をコピーする

コマンド ["--server.port=8080"]

エクスポーズ8080

エントリポイント ["java","-jar","/app.jar"]

3. 次に、Dockerfile を使用してイメージをビルドします。

## イメージ [root@jiangwang springbootDemo] をビルドします# docker build -t springboot-demo 。
ビルド コンテキストを Docker デーモンに送信 17.72 MB
ステップ 1/5: java:8 から
 ---> d23bdf5b1b1b
ステップ 2/5: *.jar /app.jar をコピーする
 ---> f4d6aeabd3f0
ステップ 3/5: CMD ["--server.port=8080"]
 ---> a6311f7cf7b5 で実行中
中間コンテナ a6311f7cf7b5 を削除しています
 ---> d8117b10cefa
ステップ4/5: EXPOSE 8080
 ---> ae180be637bb で実行中
中間コンテナ ae180be637bb を削除しています
 ---> f16702c75ab6
ステップ 5/5: ENTRYPOINT ["java","-jar","/app.jar"]
 ---> fafa00625666 で実行中
中間コンテナ fafa00625666 を削除しています
 ---> d4c3e225699d
正常に構築されました d4c3e225699d
springboot-demo:latest のタグ付けに成功しました

4. イメージを実行します。

# イメージ [root@jiangwang springbootDemo] を実行します。# docker run -d -p 39005:8080 --name my-springboot springboot-demo
7ac35852cb91cb10612cd28fdbe7c50c7c59df4cccf19b2f1d30dcabbfe501f4
[root@jiangwang springbootDemo]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
7ac35852cb91 springboot-demo "java -jar /app.jar …" 33 秒前 32 秒前 0.0.0.0:39005->8080/tcp my-springboot
[root@jiangwang springbootDemo]# curl localhost:39005/hello
こんにちは、nihao[root@jiangwang springbootDemo]# 

5. ブラウザに外部ネットワークの URL を入力してアクセスします。

ここでは、外部ネットワークポート39005を最初に開く必要があります。セキュリティグループ設定に移動できます。

これは、Spring Boot プロジェクトが Docker を使用して正常にデプロイされたことを示しています。

これで、Docker を使用して Spring Boot プロジェクトをデプロイする実装手順に関するこの記事は終了です。Docker を使用した Spring Boot のデプロイの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法
  • Docker を使用して Spring Boot アプリケーションをデプロイする例
  • Dockerを使用してSpringBootプロジェクトをデプロイする方法
  • Docker を使用して Spring Boot Maven アプリケーションをデプロイする方法
  • アイデアに基づいてSpringbootプロジェクトをDockerにデプロイする
  • Mac 上の Docker に springBoot プロジェクトをデプロイする (デモ)
  • Spring Boot と Docker を使用してマイクロサービスをデプロイする方法

<<:  HTML ページにミュージック ビデオを追加する例

>>:  CSS3で作られたレインボーボタンスタイル

推薦する

Linuxホスト名変更コマンドの詳しい説明

Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...

Nginxはクロスドメインの問題を解決し、サードパーティのページを埋め込む

目次序文困難クロスドメイン定義nginxの機能リバースプロキシ静的と動的の分離達成しようとする最終結...

JS を使用した簡単な雪効果の例の詳細な説明

目次序文主な実装コードHTMLコードJSコード序文南の友達の多くは、雪をほとんど見たことがない、ある...

Vue 3 で Vue Router リンクを拡張する方法

序文<router-link> タグは、Vue アプリ内のさまざまなページ間を移動するた...

Centos7にnginxをインストールする方法

必要な環境をインストールする1. gccのインストールnginx をインストールするには、公式サイト...

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

MySQL サーバー 5.7.20 のインストールと設定方法のグラフィック チュートリアル

この記事ではMySQL 5.7.20のインストールと設定方法を記録し、皆さんと共有します1. MyS...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...

JavaScript の非同期処理で待機時間を節約できますか?

JavaScriptで非同期実行の結果を同期的に取得するには、 for ループ内でawaitを使用...

MySQLでテーブルを作成し、フィールドコメントを追加する方法

コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...

MySQL (InnoDB) がデッドロックを処理する方法の詳細な説明

1. デッドロックとは何ですか?正式な定義は次のとおりです: 2 つのトランザクションが相手側で必要...

JS 実用的なオブジェクト指向スネークゲームの例

目次考える1. 貪欲な蛇の効果画像2. スネークの分析2.1 ゲーム開始機能2.2 運動機能2.2....

CSS の div の下の同じ行にある複数の要素を右揃えにする

方法1:フロート:右さらに、フローティングにするとレイアウトがよりコンパクトになります(隙間がなくな...

Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体

1. Expressライブラリとジェネレータをインストールするcmdを開いて、次のコマンドを入力しま...

Centos7.5 は mysql5.7.24 バイナリ パッケージの展開をインストールします

1. 環境整備:オペレーティング システム: CentOS Linux リリース 7.5.1804 ...