Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法

Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法

1. SpringBoootプロジェクトを作成し、jarパッケージにパッケージ化する

2. LinuxでDockerテストを行うためのフォルダを作成する

[root@izwz90lvzs7171wgdhul8az ~]# mkdir /root/docker_test

3. jarパッケージをLinuxにアップロードする

jarパッケージを保存するフォルダを作成する

[root@izwz90lvzs7171wgdhul8az docker_test]# mkdir /root/docker_test/jar

次に、XShellを使用してjarパッケージを上記のフォルダにアップロードします。

4. Dockerfileを書く

# Java イメージに基づいて新しいイメージを作成します FROM java:8
# 著者: MAINTAINER Howinfun
# jar パッケージをコンテナに追加し、名前を app.jar に変更します。
jar/app.jar /root/docker_test/app.jar を追加します。
# jar パッケージを実行します ENTRYPOINT ["nohup","java","-jar","/root/docker_test/app.jar","&"]

注: ADD 命令と COPY 命令は同じように使用されますが、唯一の違いは、ADD がアーカイブ ファイル (tar、gzip、bzip2 など) の抽出と解凍をサポートしていることです。また、COPY 命令でコピーする必要があるディレクトリは、Dockerfile ファイルと同じディレクトリに配置する必要があることにも注意してください。

5. 鏡を作る

ビルド 1.1 より前のバージョンの docker を実行しました。

コマンドパラメータ:

-t: 新しいイメージ名を指定します
.: Dockfileが現在のパスにあることを示します

Dockerfileファイルのパスがこのディレクトリにない場合、または別のファイル名の場合は、-fオプションを使用してDockerfileファイルのパスを個別に指定できます。

[root@izwz90lvzs7171wgdhul8az docker_test]# docker build -t sbdemo -f /root/docker_test/Dockerfile /root/docker_test/

コマンドパラメータ:

-f: 最初のパラメーターは Dockerfile のパス、2 番目のパラメーターは Dockerfile が配置されているフォルダーです。作成が完了したら、docker images コマンドを使用して、作成したイメージを表示します。

[root@izwz90lvzs7171wgdhul8az docker_test]# docker イメージ | grep sbdemo
sbdemo 最新 7efac46ef997 4時間前 686MB

6. コンテナを起動する

[root@izwz90lvzs7171wgdhul8az docker_test]# docker run -d -p 8888:8888 --name mysbdemo sbdemo:latest

コマンドパラメータ:

-d: バックグラウンドで実行
-p: ポート番号を公開的に指定する
--name: コンテナに名前を付ける

起動後、docker ps を通じて実行中のコンテナを表示できます。

[root@izwz90lvzs7171wgdhul8az docker_test]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
5096c8c7b36f sbdemo "nohup java -jar /ro?? 4 秒前 2 秒前 0.0.0.0:8888->8888/tcp mysbdemo

7. コンテナの起動ログを表示する

指定されたコンテナのログは、docker ログを通じて表示できます。

[root@izwz90lvzs7171wgdhul8az docker_test]# docker は mysbdemo をログに記録します

 . ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|================|___/=/_/_/_/
 :: Spring Boot :: (v2.1.6.リリース)

2019-10-11 02:10:46.264 INFO 1 --- [ main] com.hyf.DatabaseApplication : PID 1 の 6d85ac5d8751 で DatabaseApplication v0.0.1-SNAPSHOT を開始しています (/root/docker_test/app.jar が / で root によって開始されました)
2019-10-11 02:10:46.267 DEBUG 1 --- [ main] com.hyf.DatabaseApplication : Spring Boot v2.1.6.RELEASE、Spring v5.1.8.RELEASE で実行中
2019-10-11 02:10:46.268 INFO 1 --- [ main] com.hyf.DatabaseApplication: アクティブなプロファイルが設定されていません。デフォルトのプロファイルに戻ります: default
2019-10-11 02:10:49.139 警告 1 --- [ main] omsmapper.ClassPathMapperScanner: 名前が「bookMapper」の MapperFactoryBean と「com.hyf.mapper.BookMapper」の mapperInterface をスキップします。同じ名前の Bean が既に定義されています。
2019-10-11 02:10:49.139 警告 1 --- [ main] omsmapper.ClassPathMapperScanner: '[com.hyf]' パッケージに MyBatis マッパーが見つかりません。設定を確認してください。
2019-10-11 02:10:49.246 INFO 1 --- [ main] .sdrcRepositoryConfigurationDelegate : 複数の Spring Data モジュールが見つかりました。厳密なリポジトリ構成モードに入ります。
2019-10-11 02:10:49.257 INFO 1 --- [ main] .sdrcRepositoryConfigurationDelegate : Spring Data リポジトリを DEFAULT モードでブートストラップしています。
2019-10-11 02:10:49.328 INFO 1 --- [ main] .sdrcRepositoryConfigurationDelegate : Spring Data リポジトリのスキャンが 39 ミリ秒で完了しました。リポジトリ インターフェイスが 0 個見つかりました。
2019-10-11 02:10:50.345 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : タイプ [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$2c6b335] の Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' は、すべての BeanPostProcessors による処理の対象ではありません (例: 自動プロキシの対象ではありません)
2019-10-11 02:10:51.255 INFO 1 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat がポート 8888 (http) で初期化されました
2019-10-11 02:10:51.359 INFO 1 --- [ main] o.apache.catalina.core.StandardService : サービスを開始しています [Tomcat]
2019-10-11 02:10:51.359 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : サーブレット エンジンを起動しています: [Apache Tomcat/9.0.21]
2019-10-11 02:10:51.778 INFO 1 --- [ main] oaccC[Tomcat].[localhost].[/] : Spring 組み込み WebApplicationContext を初期化しています
2019-10-11 02:10:51.779 INFO 1 --- [ main] osweb.context.ContextLoader: ルート WebApplicationContext: 初期化が 5104 ミリ秒で完了しました
2019-10-11 02:10:54.164 INFO 1 --- [ main] ossconcurrent.ThreadPoolTask​​Executor: ExecutorService 'applicationTaskExecutor' を初期化しています
2019-10-11 02:10:56.081 INFO 1 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat がポート 8888 (http) でコンテキスト パス '' で起動しました
2019-10-11 02:10:56.090 INFO 1 --- [ main] com.hyf.DatabaseApplication : DatabaseApplication を 11.49 秒で起動しました (JVM は 12.624 秒実行中)

8. アクセスインターフェース

コンテナが起動したら、Postman またはその他の http ツールを使用して、コンテナにデプロイされたアプリケーション インターフェイスにアクセスしてみます。

要約する

上記は、編集者が紹介した Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Dockerfile の CMD および ENTRYPOINT コマンドの詳細な説明
  • 最高のDockerfileを書く方法
  • Dockerfile の COPY コマンドと ADD コマンドの詳細な説明
  • Dockerfileイメージ構築ファイルとDockerの関連コマンドの詳細な紹介
  • Dockerfile を使用して MySQL イメージを構築し、データの初期化と権限設定を実装する詳細な説明
  • Dockerfile における ENV 命令の具体的な使用法の詳細な説明
  • Dockerfileの使用例
  • 公式 Tomcat イメージを作成するための Dockerfile とイメージの使用方法の詳細な説明
  • Dockerfile の一般的なコマンドの概要
  • Dockerfile を使用して Java ランタイム環境のミラーを作成する方法
  • Dockerfileを使用して独自のイメージを作成する方法
  • Dockerfile 命令 ADD と COPY の紹介
  • Dockerfileにおけるマルチステージ(マルチステージビルド)の詳しい説明
  • Docker の基礎: Dockerfile コマンドの詳細な説明
  • Dockerfile を使用して Node.js サービスをデプロイする方法
  • Dockerfile の手順の説明
  • Dockerfile命令VOLUMEの簡単な紹介
  • Dockerfileの簡単な紹介

<<:  MySQL デッドロックのトラブルシューティングの全プロセス記録

>>:  react+antdプロジェクトをゼロから構築する方法を教えます

推薦する

TomcatをダウンロードしてLinuxにインストールする詳細な手順

Linux に触れたばかりの方には、この内容が役に立つかもしれません。Linux にしばらく触れてい...

Webデザインチュートリアル(6):デザインへの情熱を持ち続ける

<br />前の記事:Webデザインチュートリアル(5):Webビジュアルデザイン。 1...

CentOS7 に ElasticSearch 6.4.1 をインストールするための詳細なチュートリアル

1. ElasticSearch 6.4.1 インストール パッケージを次の場所からダウンロードしま...

Reactでパスワード強度検出器を実装する方法

目次序文使用コンポーネントの記述データ構造分析プロセス分析基礎コードの分析他の要約する序文パスワード...

CSS を使用して同じ親タグの左側と右側に 2 つのボタンを配置する方法

この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...

MYSQL の解凍版における中国語の文字化け問題の解決方法

MYSQLの解凍バージョンがインストールされます1: 解凍後、my.ini ファイルをコピーし、バイ...

SELINUXの動作原理の詳細な説明

1. はじめにSELinux が Linux にもたらす主な価値は、柔軟で構成可能な MAC メカニ...

Vueの監視方法のケースの詳細な説明

Vueでの監視方法時計知らせ名前: 監視する属性に同じ名前を付ける必要があります。 1. 機能Vue...

Windows 10でDockerコンテナのポートにアクセスできない問題に対する完璧な解決策

Windows 10 で Docker コンテナのポートにアクセスできない問題を解決する (ポート ...

方言変換のためのApache Calciteコード

意味Calcite は、Sql を SqlNode に解析し、次に SqlNode を特定のデータベ...

nodejs で worker_threads を使用して新しいスレッドを作成する方法

導入前の記事で述べたように、NodeJS には 2 種類のスレッドがあります。1 つは、ユーザー リ...

VueはOSSを使用して画像や添付ファイルをアップロードします

OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...

伝説的な VUE 構文シュガーは何をするのでしょうか?

目次1. 糖衣構文とは何ですか? 2. VUE の構文糖とは何ですか? 1. 最も一般的な構文シュガ...

MySQL 5.7.17 zip インストールおよび設定チュートリアル MySQL 起動失敗の解決策

MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...