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 トランザクション分離はどのように実現されますか?
基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-na...
MySQLへの接続ここでは、リモート接続に navicat を使用します。MySQL に接続する前に...
目次序文単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
Anaconda は、conda、Python、およびそれらの依存関係など、180 を超える科学パッ...
序文この記事では主にMySQLでよく使われるツールに関する関連コンテンツを紹介し、皆さんの参考と学習...
この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...
key_lenの意味MySQL では、次に示すように、explain を使用して SQL ステートメ...
<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...
目次1. メニューをクリックしてジャンプ1. ページ名の統一2. 管理ページを追加3. ルートを追加...
目次1. Jenkinsの紹介2. Jenkinsをインストールしてデプロイする1. 環境情報2. ...
1. はじめに最近、CentOS での開発には多くの不便があることがわかりました。Windows/M...
目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...
以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...