Spring BootプロジェクトをDockerにデプロイする方法は、手動デプロイとプラグインデプロイの2つがあります。 手動展開1.アイデアを使ってSpring Bootプロジェクトを作成するpom.xml ファイル <?xml バージョン="1.0" エンコーディング="UTF-8"?> <プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <親> <artifactId>spring-cloud-examples</artifactId> <グループID>org.example</グループID> <バージョン>1.0-SNAPSHOT</バージョン> </親> <モデルバージョン>4.0.0</モデルバージョン> <artifactId>Dockerデモ</artifactId> <依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </依存関係> </依存関係> <ビルド> <プラグイン> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </プラグイン> </プラグイン> </ビルド> </プロジェクト> スタートアップクラス パッケージ dockerdemo; org.springframework.boot.SpringApplication をインポートします。 org.springframework.boot.autoconfigure.SpringBootApplication をインポートします。 org.springframework.web.bind.annotation.RequestMapping をインポートします。 org.springframework.web.bind.annotation.RestController をインポートします。 @レストコントローラ @SpringBootアプリケーション パブリッククラスアプリケーション{ パブリック静的voidメイン(String[] args) { SpringApplication.run(Application.class、引数); } @RequestMapping("/hello") パブリック文字列hello(){ 「Hello Docker World!」を返します。 } } 2. プロジェクトをJarにパッケージ化する次に、プロジェクトの pom.xml ファイルがあるディレクトリで Maven コマンドを実行し、プロジェクトを Jar パッケージにパッケージ化します。 $ mvn パッケージ 出力ログから、Jar がターゲット ディレクトリにあることがわかります。Jar パッケージを直接実行します。 $ java -jar DockerDemo-1.0-SNAPSHOT.jar 次にブラウザにhttp://localhost:8080/helloと入力してテストします。 3. DockerイメージをビルドするDockerfileを作成する java:8より ボリューム /tmp DockerDemo-1.0-SNAPSHOT.jar DockerDemo.jar を追加します。 bash -c "touch /DockerDemo.jar" を実行します。 エントリポイント ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/DockerDemo.jar"] パラメータの説明:
Dockerfile を作成したら、パッケージ化された Spring Boot プロジェクトの jar パッケージと Dockerfile ファイルを任意のディレクトリに配置し、docker コマンドを使用してイメージ ファイルをビルドします。
パラメータの説明:
4. イメージを表示して実行する#画像を表示: $ docker イメージ #イメージを実行します: $ docker コンテナ実行 --name DockerDemo -d -p 80:8080 DockerDemo:1 パラメータの説明:
プラグインの展開プラグインをデプロイするには、プロジェクトの pom.xml ファイルに ドキュメント <?xml バージョン="1.0" エンコーディング="UTF-8"?> <プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <親> <artifactId>spring-cloud-docker</artifactId> <グループID>org.example</グループID> <バージョン>1.0-SNAPSHOT</バージョン> </親> <モデルバージョン>4.0.0</モデルバージョン> <artifactId>スプリングクラウドユーレカ</artifactId> <プロパティ> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- イメージプレフィックス。リモートライブラリにイメージをプッシュするときに必要です。ここでは、Alibaba Cloud プライベートライブラリが構成されています。 --> <docker.image.prefix> レジストリ.cn-huhehaote.aliyuncs.com/monkeybrain </docker.image.prefix> <!-- docker イメージタグ --> <docker.tag>最新</docker.tag> <!-- アクティブ化されたプロフィール --> <!--<アクティブ化されたプロパティ></アクティブ化されたプロパティ>--> </プロパティ> <依存関係> <依存関係> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </依存関係> </依存関係> <プロフィール> <!-- Docker 環境 --> <!--<プロフィール> <id>ドッカー</id> <プロパティ> <activatedProperties>ドッカー</activatedProperties> <docker.tag>docker-demo-${プロジェクトバージョン}</docker.tag> </プロパティ> </プロフィール>--> </プロフィール> <ビルド> <!--デフォルトの Maven コマンド--> <defaultGoal>インストール</defaultGoal> <finalName>${プロジェクト.アーティファクトId}</finalName> <リソース> <リソース> <ディレクトリ>src/main/resources</ディレクトリ> <フィルタリング>真</フィルタリング> </リソース> </リソース> <プラグイン> <!-- Spring Boot Maven プラグインを設定して、プロジェクトを実行可能な jar パッケージにパッケージ化します --> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <構成> <実行可能ファイル> 真</実行可能ファイル> </構成> </プラグイン> <!-- パッケージ化時にユニットテストをスキップ --> <プラグイン> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <構成> <skipTests> 真</skipTests> </構成> </プラグイン> <!-- docker maven プラグインを設定し、インストール ライフサイクルをバインドし、maven install の実行時に docker イメージを生成します --> <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>0.4.13</バージョン> <!--<実行> <実行> <phase>インストール</phase> <目標> <goal>ビルド</goal> <goal>タグ</goal> </目標> </実行> </実行>--> <構成> <!-- ここで docker ノードの IP を変更するには、docker ノードのリモート管理ポート 2375 を開く必要があります。 具体的な設定については、Dockerのインストールと設定に関する前回の記事を参照してください--> <dockerHost>http://localhost:2375</dockerHost> <イメージ名>${docker.image.prefix}/${project.build.finalName}</イメージ名> <serverId>aliyun-docker-registry</serverId> <registryUrl>registry.cn-huhehaote.aliyuncs.com</registryUrl> <pushImage>真</pushImage> <!--ミラータグ--> <画像タグ> <imageTag>最新</imageTag> </画像タグ> <!--ベースイメージ--> <baseImage>java:8</baseImage> <!-- ここでの entryPoint は、コンテナの起動時に実行するコマンドを定義します。コンテナが起動すると、java -jar パッケージ名が実行されます--> <エントリポイント> ["java","-jar","/${project.build.finalName}.jar"] </エントリポイント> <リソース> <リソース> <ターゲットパス>/</ターゲットパス> <ディレクトリ>${project.build.directory}</ディレクトリ> <include>${project.build.finalName}.jar</include> </リソース> </リソース> <!--<イメージ>${docker.image.prefix}/${project.build.finalName}</イメージ> <新しい名前>${docker.image.prefix}/${project.build.finalName}:${docker.tag}</新しい名前> <forceTags>true</forceTags>--> <!-- イメージを生成するときにリモート ライブラリにプッシュする必要がある場合は、pushImage を true に設定します --> <!--<pushImage>偽</pushImage>--> </構成> </プラグイン> </プラグイン> </ビルド> </プロジェクト> プッシュコマンドを実行する$ mvn clean package docker:build -DpushImage これで、Docker による Spring Boot アプリケーションのリリースとデプロイのプロセス分析に関するこの記事は終了です。Spring Boot アプリケーションの Docker デプロイに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySQL トランザクション分離はどのように実現されますか?
Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...
目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...
目次1. はじめに2. スケジューラの基本概念2.1. 実行キュー (rq) 2.2 スケジューリン...
背景要件: ERP システムに「ボタン権限制御」機能を追加する必要があり、権限の制御粒度をボタン レ...
私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...
オンラインで検索して重複データを削除し、ID が最小のデータだけを残します。方法は次のとおりです。 ...
以前、プロジェクトを行う際に ECharts を使用しました。今日はそれをメモとして整理し、より多く...
この記事は主にSQLシリアル番号取得コード例を紹介します。記事ではサンプルコードを詳細に紹介しており...
前回の記事では、MySQL 最適化の概要 - クエリの合計数を紹介しました。この記事では、クエリ ス...
<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...
Gitlab と Github の違いについては、あまり説明する必要はありません。一言でまとめると、...
カリで再現まず、必要なvim.basicファイルにsuid権限を設定します。 chmod u+s /...
[問題の説明]私たちの実稼働環境には、複数の MySQL サーバー (MySQL 5.6.21) の...
目次インデックスタイプインデックス構造非クラスター化インデックスクエリインデックスカバー要約するイン...
前面に書かれたLinux を使用する際にソフトウェアをインストールする必要がある場合があります。もち...