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で作られたレインボーボタンスタイル

推薦する

JQueryセレクターの詳細な説明

目次基本的なセレクター:レベルセレクター:属性セレクター:フィルターセレクター:フォーム属性セレクタ...

Dockerイメージサイズを最適化する一般的な方法

通常、私たちが構築する Docker イメージはサイズが大きく、多くのディスク領域を占有します。コン...

MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明

この記事では、例を使用して、MySQL の結合クエリ、結合クエリ、サブクエリの原理と使用方法を説明し...

Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル

ソースコードを通じて Linux に最新の安定バージョンの MySQL をインストールします: my...

Mailtoを使えばHTMLでメールを送るのは簡単

最近、顧客のフッターメールボックスにクリックして送信するメール機能を追加しました。Baidu で検索...

Reactにおけるキーの役割の詳細な説明

目次質問: ボタンをクリックすると、スパンの色が赤に変わりますか?上記の問題を分析します。 2番目の...

MYSQL の 3 つのツリー構造テーブル設計の長所と短所の簡単な分析と共有

目次導入質問設計 1: 隣接リストテーブルデザインSQL の例デザイン 2: パスの列挙テーブルデザ...

オブジェクトアニメーションによってブロックされずにオブジェクトに div を表示する方法

今日はメニューボタンを作りました。マウスをボタンに移動するすると、ドロップダウンサブメニューが表示さ...

Redis イメージの Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する落とし穴を避けるための注意MySQLコン...

HTTPSの最も優れた説明

皆さんおはようございます。しばらく記事を更新していませんでした。実は、私は流行中に1か月以上家にいて...

よく使われるJavaScript配列メソッド

目次1. フィルター() 2. 各() 3. いくつか() 4. すべて() 5. 減らす() 6....

jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。

インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...

Nodeイベントループの包括的な理解

目次ノードイベントループイベントループ図メインスレッドイベントループタイマーキューの仕組み投票キュー...

win10 での mysql 8.0.16 winx64 インストールの最新グラフィック チュートリアル

このデータベースをダウンロードするには、多くの時間とトラフィックがかかります。踏み込んだ落とし穴で時...