1. 基本的な Spring-boot クイックスタート 1.1 クイックスタート pom.xml は以下の依存関係を追加します <親> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <バージョン>2.0.5.RELEASE</バージョン> </親> <プロパティ> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </プロパティ> <依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>テスト</scope> </依存関係> </依存関係> <ビルド> <finalName>スプリングドッカー</finalName> <プラグイン> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </プラグイン> </プラグイン> </ビルド> Spring-boot スタートアップクラス @SpringBootアプリケーション パブリッククラスDockerApplication { パブリック静的voidメイン(String[] args) { SpringApplication.run(DockerApplication.class、引数); } } APIのテスト @レストコントローラ パブリッククラスDockerStarterApi { @GetMapping("/api/docker/hello") パブリック文字列hello() { 「hello docker」を返します。 } } 起動設定ファイル サーバ: port: 9090 # 効果を示すために、デフォルトのポート8080をここで変更します Spring Bootをチェック . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|================|___/=/_/_/_/ :: Spring Boot :: (v2.0.2.リリース) ... 2018-12-17 17:26:13.385 INFO 48740 --- [ main] osjeaAnnotationMBeanExporter: 起動時に JMX 公開用の Bean を登録しています 2018-12-17 17:26:13.448 INFO 48740 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat がポート 9090 (http) でコンテキスト パス '' で起動しました 2018-12-17 17:26:13.453 INFO 48740 --- [ main] pers.study.docker.DockerApplication: DockerApplication を 1.982 秒で開始しました (JVM は 2.602 秒実行中) APIが有効かどうかを確認する $ curl -XGET 'http://localhost:9090/api/docker/hello' こんにちはドッカー ブラウザチェック
1.2 パッケージングと起動 プロジェクトパッケージ 上記の手順を完了したら、パッケージ化コマンドを実行します。 $ mvn clean -U -Dmaven.test.skip パッケージをコンパイル 上記の pom ファイルで <finalName>スプリングドッカー</finalName> 試運転 $ java -jar ターゲット/spring-docker.jar 何も問題がなければ(質問があればメッセージを残してください〜)、実行結果は上記と同じになり、APIが有効かどうかを確認します。 2. Dockerのクイックインストール 次にDockerを準備します インストール 公式サイトからダウンロードしてインストールする インストールの確認、ヘルプの表示 $ docker --version Docker バージョン 18.06.0-ce、ビルド 0ffa825 $ docker --help 使用方法: docker [オプション] コマンド コンテナ用の自己完結型ランタイム ... ミラー加速 中国公式ミラー加速 3. Spring-boot + Dockerを構成する pom.xmlにdockerプラグインを追加する <プロパティ> <docker.image.prefix>スプリングブート</docker.image.prefix> </プロパティ> <ビルド> <プラグイン> <!-- Docker Maven プラグイン --> <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>1.0.0</バージョン> <構成> <イメージ名>${docker.image.prefix}/${project.build.finalName}</イメージ名> <dockerディレクトリ>src/main/docker</dockerディレクトリ> <リソース> <リソース> <ターゲットパス>/</ターゲットパス> <ディレクトリ>${project.build.directory}</ディレクトリ> <include>${project.build.finalName}.jar</include> </リソース> </リソース> </構成> </プラグイン> </プラグイン> </ビルド> 上記の ディレクトリ構造は次のとおりです。 Docker 構成ファイルの構造.png openjdk:8-jdk-alpine から ボリューム /tmp spring-docker.jar app.jar を追加します。 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] FROMは、イメージがJava 8に基づいていることを示します。 VOLUMEはマウントディレクトリを示します ADDはパッケージ化されたファイルをコピーし、 以下の公式ドキュメントによると、ENTRYPOINT は Tomcat の起動時間を短縮するために追加されたシステム プロパティです。
4. DockerがSpring-bootを起動する
$ mvn パッケージ docker:build [INFO] プロジェクトをスキャンしています... ... ---> e1f8aba72bdf で実行中 中間コンテナ e1f8aba72bdf を削除しています ---> 36a61c09f09a 進捗メッセージ{id=null、ステータス=null、ストリーム=null、エラー=null、進捗=null、進捗詳細=null} 36a61c09f09a の構築に成功しました springboot/spring-docker:latest のタグ付けに成功しました [INFO] springboot/spring-docker をビルドしました [情報] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [情報] ビルド成功 [情報] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [情報] 合計時間: 6.367 秒 [情報] 終了日時: 2018-12-17T20:48:21+08:00 [情報] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ミラーを見る $ docker イメージ リポジトリ タグ イメージ ID 作成 サイズ springboot/spring-docker 最新 36a61c09f09a 2 分前 123MB 画像を実行する $ docker run -p 9090:9090 -t springboot/spring-docker . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|================|___/=/_/_/_/ :: Spring Boot :: (v2.0.2.リリース) 2018-12-17 12:53:21.502 INFO 1 --- [ main] pers.study.docker.DockerApplication : PID 1 の 94991c04be5d で DockerApplication v1.0-SNAPSHOT を開始しています (/app.jar は / で root によって開始されました) 2018-12-17 12:53:21.509 INFO 1 --- [ main] pers.study.docker.DockerApplication: アクティブなプロファイルが設定されていません。デフォルトのプロファイルにフォールバックします: default ··· 2018-12-17 12:53:25.255 INFO 1 --- [ main] osjeaAnnotationMBeanExporter : 起動時に JMX 公開用の Bean を登録しています 2018-12-17 12:53:25.337 INFO 1 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat がポート 9090 (http) でコンテキスト パス '' で起動しました 2018-12-17 12:53:25.353 INFO 1 --- [ main] pers.study.docker.DockerApplication: DockerApplication を 4.485 秒で起動しました (JVM は 5.346 秒実行中) コンテナを表示 $ docker ps コンテナID イメージ コマンド 作成ステータス ポート名 94991c04be5d springboot/spring-docker "java -Djava.securit…" 53 秒前 52 秒前 0.0.0.0:9090->9090/tcp quizzical_bhabha 起動の確認とAPIへのアクセス $ curl -XGET 'http://localhost:9090/api/docker/hello' こんにちはドッカー この時点で、spring-boot の Docker デプロイは完了です。 5. 画像を削除する コンテナを停止する $ docker stop 94991c04be5d 94991c04be5d コンテナの削除 $ docker rm 94991c04be5d 94991c04be5d 画像の削除 $ docker イメージ rm springboot/spring-docker タグなし: springboot/spring-docker:latest 削除済み: sha256:36a61c09f09ab88cfe5a05f564deb57498682f4a6f3ec01d2a8c4fdc80ac1e41 削除済み: sha256:3f9aef70be6d4d43c205454d8874f10bc2f7280f70eb88cd1f04937b7965dd27 削除済み: sha256:9a5800e93615bb4c5128bb36d31ec494327c01f1a9a768c1ff538badf76628b9 削除済み: sha256:d9c66f907448fa9e61fd5f9267d7fcf8e1f4b52d0a20466414f2f45777261284 6. その他の設定機能 環境プロパティの追加 $ docker run -e "SPRING_PROFILES_ACTIVE=prod" -p 9090:9090 -t springboot/spring-docker バックグラウンドで実行を開始する $ docker run -p 9090:9090 -d springboot/spring-docker コンテナのデバッグを有効にし、 openjdk:8-jdk-alpine から ボリューム /tmp spring-docker.jar app.jar を追加します。 環境変数JAVA_OPTS'' CMD java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar app.jar ドッカー実行 次のようにコードをコピーします。 $ docker run -e "JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" -p 9090:9090 -p 5005:5005 -t springboot/spring-docker 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
1. MySQLデータベースを作成する1. データベース構文を作成する --「testdb」という名...
テーブルはかつて、Web ページの開発、つまりレイアウトにおいて非常に重要な役割を果たしていました。...
本日は、色彩の応用に関する優れた事例を 30 件集めて、皆さんにご紹介したいと思います。これらの事例...
参考までに、Vue3でナビゲーションバーコンポーネントをカプセル化し、スクロールバーのスクロールに合...
PS: 最近、nginx を詳細に紹介している <<High-Performance ...
データベースでcreate tableステートメントを実行する テーブル `sys_acl` を作成...
この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...
目次1. 分離レベルコミットされていない読み取りREAD COMMITED (コミット読み取り/非反...
目次まず、package.jsonを設定します次にwebpackツールをインストールしますwebpa...
設定する前に、次の操作を行う必要があります。 1. まずjdk bloggerをインストールします。...
目次1. ブロックスコープ1.1. let は var を置き換える1.2. グローバル定数とスレッ...
1. LinuxのMySQLで中国語の文字化けが発生する。以下の操作を実行する。 vi /etc/m...
フォーラムで、ネットユーザーの jeanjean20 が、Marquee を標準に適合させる方法につ...
[問題の説明]私たちの実稼働環境には、複数の MySQL サーバー (MySQL 5.6.21) の...
mysql ストレージ エンジン: MySQL サーバーはモジュール スタイルを採用しており、特にス...