序文プロジェクトをデプロイするときに、node.js、Redis、RabbitMQ、MySQL などに依存する必要がある場合があります。これらのサービスのデプロイに必要な関数ライブラリと依存関係は異なり、互いに競合する可能性もあります。これにより、展開に大きな困難が生じました。 Docker はこれらの問題を巧みに解決しました。依存関係の互換性の問題を解決するために、Docker は次の 2 つの方法を使用します。
この記事では、通常 SpringBoot を使用して開発するプロジェクトを Docker を使用してデプロイする方法について説明します。 DockerファイルDockerfile とは何ですか?Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コンテンツには、イメージをビルドするために必要な手順と指示が含まれています。 Dockerfile 構文カスタム イメージを構築するときに、各ファイルを 1 つずつコピーしてパッケージ化する必要はありません。 Docker に伝える必要があるのは、イメージの構成、必要な BaseImage、コピーする必要があるファイル、インストールする必要がある依存関係、および起動スクリプトだけです。将来的には、Docker がイメージの構築を支援してくれるでしょう。 上記の情報を記述したファイルがDockerfileファイルです。 Dockerfile は、イメージを構築するために実行する操作を記述した命令が含まれるテキスト ファイルです。各命令はレイヤーを形成します。 SpringBoot プロジェクトのパッケージ化準備プロジェクト: プロジェクトポート サーバーポート=8080 テンプレートフォルダに新しいindex.htmlを作成します。 <!DOCTYPE html> <html lang="ja" xmlns:th="http://www.thymeleaf.org"> <ヘッド> <メタ文字セット="UTF-8"> <title>Docker デプロイメント SpringBoot アプリケーション</title> </head> <本文> <h1>SpringBoot アプリケーションの Docker デプロイメント</h1> <img src="/static/img/2.jpg" alt="" width="100%"> </本文> </html> ホームページコントローラを定義してインデックスにジャンプする @コントローラ パブリッククラスindexController{ @リクエストマッピング("/") パブリック文字列インデックス(){ 「インデックス」を返します。 } } 効果をローカルでプレビューします。 SpringBootアプリケーションをローカルのjarにパッケージ化するmaven-compiler-pluginプラグインを準備する <ビルド> <!--コンパイルされパッケージ化されたファイル名--> <finalName>アプリ</finalName> <プラグイン> <プラグイン> <!--GAV 座標 (G 組織 ID、A プロジェクト ID、V バージョン番号)--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <バージョン>3.8.1</バージョン> <!--構成: 一般的に言えば、ターゲットとソースは一致していますが、プログラムを他のバージョンの JDK で実行できるようにするため (ターゲット JDK のバージョンが低い場合、ソース コードは、バージョンが低い JDK でサポートされていない構文を使用できません)、ターゲットがソースと異なる状況が発生することがあります --> <構成> <!-- ソースコードで使用される JDK バージョン --> <ソース>1.8</ソース> <!-- 生成されるターゲット クラス ファイルのコンパイル済みバージョン --> <target>1.8</target> <!-- 中国語の文字化けを防ぐための文字セットのエンコード --> <encoding>UTF-8</encoding> </構成> </プラグイン> </プラグイン> </ビルド>
次にcleanを実行し、最後にpackageを実行してプロジェクトをパッケージ化します。 BUILD SUCCESS メッセージは、パッケージが正常に完了したことを示します。 パッケージ化が成功すると、ターゲットフォルダが表示され、パッケージ化されたjarパッケージがディレクトリ内に格納されます。 jarパッケージとDockerfileを準備するjar をデスクトップまたはカスタムの場所にコピーし、ローカルで Dockerfile ファイルを作成して書き込みます ( Dockerfileの作成Dockerfileの手順 java:8-alpine より コピー ./app.jar /tmp/app.jar エントリポイント java -jar /tmp/app.jar Dockerfileの説明 java:8-alpine より: java8 をベースにイメージをビルドします。デフォルトでは、Java イメージをビルドするには、環境変数をインストールして構成する必要があります。java:8-alpine イメージでは、これまでの手順がすべて完了しています。 コピー ./app.jar /tmp/app.jar jarパッケージをコピーする エントリポイント java -jar /tmp/app.jar エントリーコマンド ツールを使用してjarとDockerfileをサーバーにアップロードしますアップロード場所は個人によって異なります。私は /tmp/docker に保存しています。 一時ファイル mkdir ドッカー アップロードファイルを選択 イメージを構築するファイルをアップロードしたディレクトリに移動します: イメージをビルドするためのコマンドを入力します docker build -t テスト:1.0 。
コマンドの説明:
イメージをビルドするときに、Dockerfileに記述した3つのコマンドに従って3つのステップで実行されることがわかります。 ミラーを見るDocker でイメージ コマンドを表示します。 Docker イメージ カスタム画像テストを見ることができます コンテナを作成して実行するDocker イメージ コマンドを実行します。 docker run --name springboot -p 8080:8080 -d test:1.0 コマンドの説明:
コンテナが作成され、正常に実行されました。 実行中の画像を見る画像コマンドの実行 ドッカーps ブラウザはサーバーのポート8080にアクセスします モバイルアクセス: ログを表示コンテナログコマンドの表示 docker ログ -f springboot 例: コンテナのログを表示しますが、リアルタイムで更新されません。新しいログを表示するには、再度実行する必要があります。 docker ログ + コンテナ名 リアルタイム更新ログ docker logs -f + コンテナ名 Docker デプロイ SpringBoot アプリケーション チュートリアルは終了です。 SpringBoot アプリケーションの Docker デプロイメントに関するこの記事はこれで終わりです。SpringBoot アプリケーションの Docker デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTMLとXHTML、HTML4とHTML5のタグの違いについて簡単に紹介します。
>>: カルーセルバナーの自動回転効果を実現する純粋な CSS
目次1. pidファイルの紹介2.ソケットファイルの紹介要約:ソケット ファイル: Unix ドメイ...
目次1. Vue3コンポーネント通信方式2. Vue3通信の使い方2.1 小道具2.2 $エミット2...
MySQL のログには、エラー ログ、バイナリ ログ、一般クエリ ログ、スロー クエリ ログなどが含...
設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...
1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...
キャッシュを使用する目的は、バックエンドの負荷を軽減し、Web サイトの同時実行性を向上させることで...
目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...
序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...
1. データベースの文字セットを確認するデータベースの文字セットは、Linux で設定された環境変数...
Docker を正式に使用する前に、まず Docker でよく使用されるコマンドに慣れておきましょう...
目次1. 手順1. ボタンの権限を定義する2. ストアを定義する3. 権限指示を作成する4. パーミ...
目次MySQL クライアント/サーバー プロトコルMySQL サーバーから高いパフォーマンスを得る必...
MySQL によって作成される最適化はインデックスを追加することですが、インデックスを追加しても目的...
目次1. 一般的な高階関数1.1、フィルター1.2、地図1.3、減らすHigher Order fu...
最近新しい会社に入社しました。プロジェクトに携わった後、タイトルアイコンが svg で作られていると...