ホームページ Java &#&チュートリアル Dockerを使用してSpringBootプロジェクトをデプロイする方法

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

May 22, 2023 pm 11:58 PM
docker springboot

最初に単純な Spring Boot プロジェクトを構築し、次にそのプロジェクトに Docker サポートを追加し、最後にプロジェクトをデプロイします。

単純な Spring Boot プロジェクト

pom.xml で Spring Boot 2.0 関連の依存関係を使用します

<parent>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-parent</artifactid>
 <version>2.0.0.release</version>
</parent>
ログイン後にコピー

Web およびテストの依存関係を追加します

<dependencies>
   <dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-web</artifactid>
  </dependency>
 <dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-test</artifactid>
 <scope>test</scope>
 </dependency>
</dependencies>
ログイン後にコピー

index() メソッドを含む dockercontroller を作成します。アクセスすると、次のメッセージが返されます: hello docker!

@restcontroller
public class dockercontroller {
 
  @requestmapping("/")
  public string index() {
    return "hello docker!";
  }
}
ログイン後にコピー

Startup class

@springbootapplication
public class dockerapplication {
 
 public static void main(string[] args) {
 springapplication.run(dockerapplication.class, args);
 }
}
ログイン後にコピー

追加後、プロジェクトを開始します成功すると、ブラウザーは http://localhost:8080/ にアクセスし、ページは hello docker! を返し、Spring Boot プロジェクトの構成が正常であることを示します。

Spring Boot プロジェクトに docker サポートを追加

pom.xml-properties に docker イメージ名を追加

<properties>
 <docker.image.prefix>springboot</docker.image.prefix>
</properties>
ログイン後にコピー

plugins docker build Plug-in を追加in:

<build>
 <plugins>
 <plugin>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-maven-plugin</artifactid>
 </plugin>
 <!-- docker maven plugin -->
 <plugin>
  <groupid>com.spotify</groupid>
  <artifactid>docker-maven-plugin</artifactid>
  <version>1.0.0</version>
  <configuration>
  <imagename>${docker.image.prefix}/${project.artifactid}</imagename>
  <dockerdirectory>src/main/docker</dockerdirectory>
  <resources>
   <resource>
   <targetpath>/</targetpath>
   <directory>${project.build.directory}</directory>
   <include>${project.build.finalname}.jar</include>
   </resource>
  </resources>
  </configuration>
 </plugin>
 <!-- docker maven plugin -->
 </plugins>
</build>
ログイン後にコピー

ディレクトリ src/main/docker に dockerfile ファイルを作成します。dockerfile ファイルは、イメージのビルド方法を記述するために使用されます。

from openjdk:8-jdk-alpine
volume /tmp
add spring-boot-docker-1.0.jar app.jar
entrypoint ["java","-djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ログイン後にコピー

この dockerfile ファイルは非常に単純です。jdk の基本環境を構築し、Spring Boot jar をイメージに追加し、簡単に説明します:

  • from (jdk8 を使用することを意味します)ベースとなる環境 ミラー、ミラーがローカルでない場合、dockerhub からダウンロードされます

  • ボリューム、スプリング ブートは組み込みの Tomcat を使用するため、ボリュームは /tmp ディレクトリを指しますコンテナの場合、tomcat はデフォルトのワーク リストとして /tmp を使用します。このコマンドの効果は次のとおりです。ホストの /var/lib/docker ディレクトリに一時ファイルを作成し、それをコンテナ内の /tmp ディレクトリにリンクします。

  • add、コピーします。 Tomcat の起動時間を短縮するには、/dev/urandom をエントリポイント

    # として指すように java.security.egd のシステム プロパティを追加します。
  • # #以上で、Spring Boot プロジェクトへの docker 依存関係の追加が完了しました。

  • パッケージ環境の構築

Spring Boot プロジェクトをパッケージするには Docker 環境が必要ですが、Windows で Docker 環境を構築するのは非常に面倒なので、たとえば、ここでは centos 7 を使用します。
docker 環境のインストール

インストール

yum install docker
ログイン後にコピー
インストールが完了したら、次のコマンドを使用して docker サービスを開始し、設定します。起動するには:
service docker start
chkconfig docker on
 
#lctt 译注:此处采用了旧式的 sysv 语法,如采用centos 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service
ログイン後にコピー

Docker China アクセラレータを使用します

vi /etc/docker/daemon.json
 
#添加后:
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "live-restore": true
}
ログイン後にコピー

docker を再起動

systemctl restart docker
ログイン後にコピー

docker のバージョンを入力し、バージョン情報を返すと、インストールは正常に行われます。

jdk をインストールします

yum -y install java-1.8.0-openjdk*
ログイン後にコピー

環境変数を設定し、vim /etc/profile を開いてコンテンツを追加します

export java_home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export path=$path:$java_home/bin
ログイン後にコピー
変更が完了したらを有効にしてください
source /etc/profile
ログイン後にコピー

java -version と入力し、バージョン情報が返されれば、インストールは正常です。

maven のインストール

ダウンロード:

## 解压
tar vxf apache-maven-3.5.2-bin.tar.gz
## 移动
mv apache-maven-3.5.2 /usr/local/maven3
ログイン後にコピー
環境変数を変更し、次の行を /etc/profile
maven_home=/usr/local/maven3
export maven_home
export path=${path}:${maven_home}/bin
ログイン後にコピー
に追加します。

source /etc/profile を実行して環境変数を有効にすることを忘れないでください。

mvn -version と入力するとバージョン情報が返され、インストールは正常に行われます。

このようにして、ビルド環境全体が構成されます。

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

プロジェクト spring-boot-docker をサーバーにコピーし、パッケージ化テスト用のプロジェクト パスを入力します。

#打包
mvn package
#启动
java -jar target/spring-boot-docker-1.0.jar
ログイン後にコピー
Spring Bootの起動ログを見ると、環境構成に問題はないことがわかりますので、次にdockerfileを使ってイメージをビルドします。
mvn package docker:build
ログイン後にコピー

最初のビルドは少し遅いかもしれません。次の内容が表示されたら、ビルドは成功しています:

...
step 1 : from openjdk:8-jdk-alpine
 ---> 224765a6bdbe
step 2 : volume /tmp
 ---> using cache
 ---> b4e86cc8654e
step 3 : add spring-boot-docker-1.0.jar app.jar
 ---> a20fe75963ab
removing intermediate container 593ee5e1ea51
step 4 : entrypoint java -djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> running in 85d558a10cd4
 ---> 7102f08b5e95
removing intermediate container 85d558a10cd4
successfully built 7102f08b5e95
[info] built springboot/spring-boot-docker
[info] ------------------------------------------------------------------------
[info] build success
[info] ------------------------------------------------------------------------
[info] total time: 54.346 s
[info] finished at: 2018-03-13t16:20:15+08:00
[info] final memory: 42m/182m
[info] ------------------------------------------------------------------------
ログイン後にコピー

docker Images コマンドを使用して、ビルドされたイメージを表示します:

docker images
repository           tag         image id      created       size
springboot/spring-boot-docker  latest       99ce9468da74    6 seconds ago    117.5 mb
ログイン後にコピー

springboot/spring-boot-docker は構築したイメージです。次のステップはイメージを実行することです

docker run -p 8080:8080 -t springboot/spring-boot-docker
ログイン後にコピー

起動が完了したら、docker ps を使用して実行中のイメージを表示します:

docker ps
container id    image              command         created       status       ports          names
049570da86a9    springboot/spring-boot-docker  "java -djava.security"  30 seconds ago   up 27 seconds    0.0.0.0:8080->8080/tcp  determined_mahavira
ログイン後にコピー

You can see The Container we build is running. ブラウザー http://192.168.0.x:8080/ にアクセスし、

hello docker!
ログイン後にコピー
を返し、Spring Boot プロジェクトが正常にデプロイされたことを示しますドッカーを使ってみよう!

以上がDockerを使用してSpringBootプロジェクトをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

pycharmでプロジェクトをパッケージ化する方法 pycharmでプロジェクトをパッケージ化する方法 Apr 25, 2024 am 03:54 AM

PyCharm でプロジェクトをパッケージ化するには 4 つの方法があります。 別個の実行可能ファイルとしてパッケージ化する: EXE 単一ファイル形式にエクスポートする。インストーラーとしてパッケージ化されています: Setuptools Makefile を生成してビルドします。 Docker イメージとしてパッケージ化する: イメージ名を指定し、ビルド オプションを調整してビルドします。コンテナとしてパッケージ化する: ビルドするイメージを指定し、ランタイム オプションを調整して、コンテナを起動します。

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

PHPマイクロサービスコンテナ化のアジャイル開発と運用 PHPマイクロサービスコンテナ化のアジャイル開発と運用 May 08, 2024 pm 02:21 PM

回答: PHP マイクロサービスは、アジャイル開発のために HelmCharts でデプロイされ、分離とスケーラビリティのために DockerContainer でコンテナ化されます。詳細説明: HelmCharts を使用して PHP マイクロサービスを自動的にデプロイし、アジャイル開発を実現します。 Docker イメージを使用すると、マイクロサービスの迅速な反復とバージョン管理が可能になります。 DockerContainer 標準はマイクロサービスを分離し、Kubernetes がコンテナの可用性とスケーラビリティを管理します。 Prometheus と Grafana を使用して、マイクロサービスのパフォーマンスと健全性を監視し、アラームと自動修復メカニズムを作成します。

golangプログラムの起動方法 golangプログラムの起動方法 Apr 21, 2024 am 12:47 AM

Go プログラムを開始するには、次の 4 つの方法があります。 コマンド ラインを使用する: go run main.go IDE の [実行] または [デバッグ] メニューから開始する コンテナ オーケストレーション ツール (Docker や Kubernetes など) を使用してコンテナを開始する systemd またはUnix システム上のスーパーバイザ システム サービスとして実行

Docker が LLama3 オープンソース大規模モデルのローカル展開を 3 分で完了 Docker が LLama3 オープンソース大規模モデルのローカル展開を 3 分で完了 Apr 26, 2024 am 10:19 AM

概要 LLaMA-3 (LargeLanguageModelMetaAI3) は、Meta Company が開発した大規模なオープンソースの生成人工知能モデルです。前世代のLLaMA-2と比べてモデル構造に大きな変更はありません。 LLaMA-3 モデルは、さまざまなアプリケーションのニーズやコンピューティング リソースに合わせて、小規模、中規模、大規模などのさまざまな規模のバージョンに分割されています。小型モデルのパラメータ サイズは 8B、中型モデルのパラメータ サイズは 70B、大型モデルのパラメータ サイズは 400B に達します。ただし、トレーニング中の目標は、マルチモーダルおよび複数言語の機能を達成することであり、その結果は GPT4/GPT4V に匹敵することが期待されます。 Ollama をインストールするOllama は、オープンソースの大規模言語モデル (LL) です。

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

PHP 分散システムのアーキテクチャと実践 PHP 分散システムのアーキテクチャと実践 May 04, 2024 am 10:33 AM

PHP 分散システム アーキテクチャは、ネットワークに接続されたマシン全体にさまざまなコンポーネントを分散することで、スケーラビリティ、パフォーマンス、およびフォールト トレランスを実現します。このアーキテクチャには、アプリケーション サーバー、メッセージ キュー、データベース、キャッシュ、ロード バランサーが含まれます。 PHP アプリケーションを分散アーキテクチャに移行する手順は次のとおりです。 サービス境界の特定 メッセージ キュー システムの選択 マイクロサービス フレームワークの採用 コンテナ管理への展開 サービスの検出

コンテナ化を通じて Java 関数のパフォーマンスを最適化するにはどうすればよいですか? コンテナ化を通じて Java 関数のパフォーマンスを最適化するにはどうすればよいですか? Apr 29, 2024 pm 03:09 PM

コンテナ化により、次の方法で Java 関数のパフォーマンスが向上します。 リソースの分離 - 分離されたコンピューティング環境を確保し、リソースの競合を回避します。軽量 - 消費するシステム リソースが少なくなり、実行時のパフォーマンスが向上します。高速起動 - 関数の実行遅延を軽減します。一貫性 - アプリケーションとインフラストラクチャを分離して、環境全体で一貫した動作を保証します。

See all articles