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

推薦する

Docker データボリュームコンテナの作成と使用状況分析

データ ボリューム コンテナーは、データ ボリュームをマウントするために特別に使用されるコンテナーで...

理論の普及——ユーザーエクスペリエンス

1. 概念分析 1: UE ユーザー エクスペリエンス <br />英語ではユーザー エ...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...

CUDA8.0とCUDA9.0はUbuntu16.04で共存します

序文Github にある以前のコードには、CUDA 8.0 環境が必要なものもあります。初心者の場合...

アコーディオンセカンダリメニューを実装するためのjQueryプラグイン

この記事では、jQueryプラグインを使用してアコーディオンセカンダリメニューを作成します。具体的な...

マークアップ言語 - Web アプリケーション CSS スタイル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

Spark RDD をデータフレームに変換し、それを MySQL に書き込む例

DataframeはSpark 1.3.0で導入された新しいAPIで、Sparkで大規模な構造化デー...

CocosCreator 入門チュートリアル: TS で初めてのゲームを作る

目次前提TypeScript と JavaScriptコードエディタの選択TypeScriptを学ぶ...

MySQLの自動増分主キーの実装の詳細な説明

目次1. 自己増分値はどこに保存されますか? 2. 自己価値修正メカニズム3. 自動増分値を変更する...

JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明

JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明最近、...

HTML の順序付きリスト、順序なしリスト、定義リストに関する簡単な説明

順序付きリストXML/HTML コードコンテンツをクリップボードにコピー<オルタイプ= &qu...

航空機戦争ゲームを実装するためのネイティブJS

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

Linuxターミナルでファイルを作成する2つの一般的な方法を簡単に理解する

mkdir コマンドを使用して新しいディレクトリを作成できることは誰もが知っていますが、多くの場合、...

Mac に Windows サービスを備えた仮想マシンをインストールする方法

1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...