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/CentOS サーバー セキュリティ構成の一般ガイド

Linux はオープン システムです。インターネット上には、既成のプログラムやツールが多数存在します...

vue3ソースコード解析の簡単な実装方法

目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...

Docker で ElasticSearch と Kibana をインストールするためのサンプル コード

1. はじめにElasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを...

Ubuntu 18.04はルート権限を取得し、ルートユーザーとしてログインします

事前に書いておきます:次の手順では、ターミナルにコマンドを入力する必要があります。コンピューターでブ...

新しいユーザーを作成し、MySQLに権限を付与する最も簡単な方法

ユーザーを作成します: 'oukele' によって識別されるユーザー 'ou...

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

docker ストレージを使用して Exit を実行すると、サーバーへのファイルのアップロードが失敗する問題と解決策

1. 問題の説明Docker コンテナにインストールされているストレージが終了状態になっているため、...

キャンバス操作プラグイン fabric.js の使い方を詳しく解説

Fabric.js は非常に便利なキャンバス操作プラグインです。ここでは、日常のプロジェクトで使用さ...

MySQLでよく使われる4つのストレージエンジンについて簡単に説明します。

よく使われる4つのMySQLエンジンの紹介(1):MyISAMストレージエンジン:トランザクションや...

HTMLからPDFへのスクリーンショット保存機能の実装

テクノロジーの活用itext.jar: バイト ファイル入力ストリームを画像、PDF などに変換しま...

ReactプロジェクトにSCSSを導入する方法

まず依存関係をダウンロードします yarn sass-loader ノード sass を追加します次...

Zabbix カスタム監視 nginx ステータス実装プロセス

目次Zabbix カスタム監視 nginx ステータス1. ステータスインターフェースを開く2. 監...

MySQL で戻り値ありと戻り値なしのストアド プロシージャを書く 2 つの方法

プロセス1: 戻り値あり: proc_addNum が存在する場合はプロシージャを削除します。 プロ...

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...

MySQL インデックス最適化の説明

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...