Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Docker を使用して Spring Boot をデプロイするのは実はとても簡単です。この記事で簡単に学びましょう。 まず、シンプルな Spring Boot プロジェクトをビルドし、次にプロジェクトに Docker サポートを追加し、最後にプロジェクトをデプロイします。 シンプルなSpring Bootプロジェクト pom.xmlでは、Spring Boot 2.0関連の依存関係を使用します。 <親> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <バージョン>2.0.0.RELEASE</バージョン> </親> ウェブとテストの依存関係を追加する <依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>テスト</scope> </依存関係> </依存関係> Hello Docker! を返す index() メソッドを持つ DockerController を作成します。 @レストコントローラ パブリッククラスDockerController { @リクエストマッピング("/") パブリック文字列インデックス(){ 「Hello Docker!」を返します。 } } スタートアップクラス @SpringBootアプリケーション パブリッククラスDockerApplication { パブリック静的voidメイン(String[] args) { SpringApplication.run(DockerApplication.class、引数); } } 追加したら、プロジェクトを起動します。起動に成功したら、ブラウザで http://localhost:8080/ にアクセスします。ページに「Hello Docker!」が返され、Spring Boot プロジェクトが正常に構成されていることが示されます。 Spring Boot プロジェクトが Docker サポートを追加 pom.xml-propertiesにDockerイメージ名を追加します。 <プロパティ> <docker.image.prefix>スプリングブート</docker.image.prefix> </プロパティ> プラグインに Docker ビルド プラグインを追加します。 <ビルド> <プラグイン> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </プラグイン> <!-- Docker Maven プラグイン --> <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>1.0.0</バージョン> <構成> <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名> <dockerディレクトリ>src/main/docker</dockerディレクトリ> <リソース> <リソース> <ターゲットパス>/</ターゲットパス> <ディレクトリ>${project.build.directory}</ディレクトリ> <include>${project.build.finalName}.jar</include> </リソース> </リソース> </構成> </プラグイン> <!-- Docker Maven プラグイン --> </プラグイン> </ビルド> src/main/docker ディレクトリに Dockerfile ファイルを作成します。Dockerfile ファイルは、イメージのビルド方法を説明するために使用されます。 openjdk:8-jdk-alpine から ボリューム /tmp spring-boot-docker-1.0.jar app.jar を追加します。 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] この Dockerfile は非常にシンプルです。JDK の基本環境を構築し、イメージに Spring Boot Jar を追加します。以下に簡単な説明を示します。
これで、Spring Boot プロジェクトへの Docker 依存関係の追加が完了します。 パッケージ環境を構築する Spring Boot プロジェクトをパッケージ化するには Docker 環境が必要です。Windows 上で Docker 環境を構築するのは面倒なので、Centos 7 を例に説明します。 Docker環境をインストールする インストール yumでdockerをインストール インストールが完了したら、次のコマンドを使用して Docker サービスを起動し、起動時に開始するように設定します。 サービスdocker開始 chkconfig docker オン #LCTT 注釈: ここでは古い sysv 構文が使用されています。たとえば、CentOS 7 でサポートされている新しい systemd 構文は次のとおりです。 systemctl で docker.service を起動します。 systemctl で docker.service を有効にする Docker China Acceleratorの使用 :vi /etc/docker/daemon.json を編集します。 #追加後: { "レジストリミラー": ["https://registry.docker-cn.com"], 「ライブリストア」:true } dockerを再起動する systemctl dockerを再起動します docker のバージョンを入力します。バージョン情報が返されれば、インストールは成功です。 JDKをインストールする yum -y java-1.8.0-openjdk* をインストールします 環境変数を設定する vim /etc/profileを開き、次の内容を追加します JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64 をエクスポートします。 エクスポート PATH=$PATH:$JAVA_HOME/bin 変更が完了したら、有効にします ソース /etc/profile java -version と入力したときにバージョン情報が返された場合、インストールは成功しています。 MAVENのインストール ダウンロード: http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz ## 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 MAVEN_HOMEをエクスポートする PATH=${PATH}:${MAVEN_HOME}/bin をエクスポートします。 環境変数を有効にするには、必ず source /etc/profile を実行してください。 mvn -version と入力し、バージョン情報が返された場合はインストールは成功しています。 これでビルド環境全体の構成が完了します。 Dockerを使用してSpring Bootプロジェクトをデプロイする spring-boot-docker プロジェクトをサーバーにコピーし、パッケージ化とテストのためのプロジェクト パスを入力します。 #パッケージ化 mvn パッケージ #java -jar target/spring-boot-docker-1.0.jar を起動します Spring Bootの起動ログを見ると、環境設定に問題がないことがわかります。次に、DockerFileを使用してイメージをビルドします。 mvn パッケージ docker:build 最初のビルドは少し遅くなる場合がありますが、次のメッセージが表示されたらビルドは成功です。 ... ステップ 1: openjdk:8-jdk-alpine から ---> 224765a6bdbe ステップ2: ボリューム/tmp ---> キャッシュの使用 ---> b4e86cc8654e ステップ3: spring-boot-docker-1.0.jar app.jarを追加する ---> a20fe75963ab 中間コンテナ593ee5e1ea51の削除 ステップ 4: ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar ---> 85d558a10cd4 で実行中 ---> 7102f08b5e95 中間コンテナ 85d558a10cd4 を削除しています 7102f08b5e95 の構築に成功しました [INFO] springboot/spring-boot-docker をビルドしました [情報] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [情報] ビルド成功 [情報] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [情報] 合計時間: 54.346 秒 [情報] 終了日時: 2018-03-13T16:20:15+08:00 [情報] 最終メモリ: 42M/182M [情報] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ビルドされたイメージを表示するには、docker images コマンドを使用します。 Docker イメージ リポジトリ タグ イメージ ID 作成 サイズ springboot/spring-boot-docker 最新 99ce9468da74 6 秒前 117.5 MB springboot/spring-boot-docker は私たちが構築したイメージです。次のステップはイメージを実行することです。 docker run -p 8080:8080 -t springboot/spring-boot-docker 起動が完了したら、docker ps を使用して実行中のイメージを表示します。 ドッカーps コンテナID イメージ コマンド 作成ステータス ポート名 049570da86a9 springboot/spring-boot-docker "java -Djava.security" 30 秒前 27 秒前に起動 0.0.0.0:8080->8080/tcp determination_mahavira 構築したコンテナが動作しているのがわかります。ブラウザでhttp://192.168.0.x:8080/にアクセスし、 こんにちは、Docker! これは、Spring Boot プロジェクトが Docker を使用して正常にデプロイされたことを示しています。 サンプルコード: https://github.com/ityouknow/spring-boot-examples 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: vueプロジェクトのマルチ環境設定(.env)の実装
>>: ElementUIはel-formフォームリセット機能ボタンを実装します
背景一時テーブルスペースは、データベースのソート操作を管理し、一時テーブルや中間ソート結果などの一時...
この記事では、カレンダー機能を実装するためのVue.jsの具体的なコードを例として紹介します。具体的...
序文非表示要素の 3 つの属性である表示、可視性、不透明度の類似点と相違点は、フロントエンドの就職面...
効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...
問題の説明html <iframe id="h5Content" src=...
ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...
この記事の例はすべて小さなプログラムで書かれていますが、実装される機能には影響しません。 wxmlル...
vue-無限スクロールインストール npm インストール vue-infinite-scroll -...
この記事の例では、ミニプログラムのカスタムタブバーコンポーネントをカプセル化するための具体的なコード...
前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...
序文vsftp は使いやすく安全な FTP サーバー ソフトウェアです。システムユーザーまたは仮想ユ...
まず、VMware 14のアクティベーションコードをお渡ししますFF31K-AHZD1-H8ETZ-...
この記事では、参考までにMySQL 8.0.15圧縮版のインストール方法を紹介します。具体的な内容は...
目次序文構築可能なスタイルシートとは何ですか? CSSモジュールスクリプトの使用インポートアサーショ...
Nginx を使用して Tomcat9 クラスターを構築し、Redis を使用してセッション共有を実...