序文プロジェクトをデプロイするときに、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. オープンソースの倉庫管理ツール Harbor 2 インストール2.1 DockerとDoc...
オンラインショッピングモールデータベース - ユーザー情報データ運用プロジェクトの説明電子商取引の台...
この記事では、VMware Workstation Pro で Win10 オペレーティング システ...
目次序文REDOログの生成REDOログ送信REDOログの保存と通知ユーザースレッドに通知要約する序文...
1. コマンド mysqld --skip-grant-tables を入力します (前提条件: m...
多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...
以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...
ps: Linux システムで root アカウントのリモート ログインを無効にする方法は次のとおり...
目次序文関連資料Vue プロジェクトが 2 次元ハイパーグラフを導入ハイパーグラフ 2D ケース引用...
目次序文ディープページングを制限すると遅くなるのはなぜですか?サブクエリによる最適化B+ツリー構造の...
序文metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うで...
日常業務でファイルをダウンロードする一般的な方法は 2 つあります。 1 つ目は、サーバーのファイル...
1. 公式ウェブサイトから Linux バージョンをダウンロードします: https://dev.m...
Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...
MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...