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 トランザクション分離はどのように実現されますか?
メインのオペレーティング システムを Windows から Ubuntu に切り替えたとき、最初に考...
1. ビッグデータとHadoopビッグデータについて研究し学ぶには、当然 Hadoop から始める必...
目次1. DOMとは何か2. 要素を選択する3. getElementById() 4. クエリセレ...
この記事は主に、docker デプロイメント springboot プロジェクトのサンプル分析を紹介...
問題の説明 (以下の説明は Windows 環境に限定されます): D:\develop\ide\m...
CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...
この記事では、CSS で記事の区切り線を実装するさまざまな方法をまとめています。区切り線はページを美...
目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...
1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...
1. まずcenterosに付属のJDKをアンインストールします rpm-qa|grepopenjd...
一般的な基本グラフィックと私が遭遇するいくつかの小さなアイコンについて簡単に説明します。以下は CS...
セキュアターミナルMobaXterm_Personalをダウンロードまず、安全なターミナルをダウンロ...
目次1. コンセプト1.1 エラーと例外とは何ですか? 1.2 異常の分類2. 例外処理2.1try...
エラーのスクリーンショット例外が発生した場所が見つかりません。解決策: リソースディレクトリにlog...
私たちウェブマスターは皆、ウェブサイトを最適化する際に記事内のキーワードを太字にすることが最適化に非...