Maven+Tomcat 基本イメージを構築する Docker の実装

Maven+Tomcat 基本イメージを構築する Docker の実装

序文

Javaプログラミングでは、ほとんどのアプリケーションはMavenに基づいて構築されており、配信される結果は主にTomcat warパッケージの形式です。そのため、MavenとTomcatに基づいて基本イメージを構築する必要があります。これにより、日常の独立した実験研究と分析の効率が向上するだけでなく、運用とメンテナンスをある程度削減し、Dockerfileの作成の複雑さを軽減し、プロジェクト全体の配信効率を向上させることができます。

1. コンパイルディレクトリを作成する

mkdir -p ビルドdocker
ビルド_docker
vim Dockerファイル

2. Dockerfileを書く

まず、公式にメンテナンスされている maven:3.3.3 イメージをベースイメージとして選択し、これに基づいて Tomcat サポートを追加します。

Maven:3.3.3より

国内倉庫のスピードがお好みなら、Alibabaのmaven:3-jdk-8も選択できます。

registry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8 から

次に、Tomcat 関連の環境変数を設定し、システム PATH 変数に追加して、シェルで Tomcat の起動スクリプトに直接アクセスできるようにします。

ENV CATALINA_HOME /usr/local/tomcat
環境変数 PATH $CATALINA_HOME/bin:$PATH
mkdir -p "$CATALINA_HOME" を実行します。
ワークディレクトリ $CATALINA_HOME

3 番目に、Tomcat GPG-KEY を追加します。これは、Tomcat がファイルをダウンロードした後に、ファイルが正しいかどうかを確認するために使用されます。次の keyid データは、公式の Tomcat-8 から取得されます。

gpg --keyserver pool.sks-keyservers.net --recv-keys を実行します \
F22C4FED \
86867BA6 \
E86E29AC \
307A10A5 \
564C17A3 \
0x7C037D42 \
0BECE548 \
5E763BEC \
2F6059E7 \
288584E7 \
4B6FAEFB \
286BACF1 \
731ファビー \
461B342D \
0D498E23 \
DC3D1B18 \
D63011C7 \
30480593

4 番目に、Tomcat バージョン変数を設定します。ビルド中に Tomcat バージョンを変更するには、対応するパラメータを渡すことができます。 maven:3.3.3 イメージが依存する Java バージョンは 1.8 なので、Tomcat にも 8.X バージョンを選択します。コンパイルの一貫性を維持することで、Tomcat のパフォーマンスを最大限に高めることができます。

ここでは最新バージョン8.5.45を選択します。

次に、curl を使用してダウンロードし、検証後に解凍し、余分な bat スクリプトを削除します。 (このスクリプトは Windows 環境でのみ使用され、Linux/Mac イメージでは役に立ちません)

環境変数 TOMCAT_VERSION 8.5.45
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz

実行set -x \
  && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
  && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
  && gpg --verify tomcat.tar.gz.asc \
  && tar -xvf tomcat.tar.gz --strip-components=1 \
  && rm bin/*.bat \
  && rm tomcat.tar.gz*

5 番目に、Tomcat のデフォルト ポート 8080 を公開し、このイメージに基づくコンテナーの起動時に実行されるスクリプトを指定します。このスクリプトは、Tomcat の起動スクリプトです。

エクスポーズ8080
CMD ["catalina.sh", "実行"]

3. イメージを構築する

ビルドは docker -t base-maven-tomcat です。

これで完了です。

添付ファイル: 完全な Dockerfile ファイル

Maven:3.3.3より

ENV CATALINA_HOME /usr/local/tomcat
環境変数 PATH $CATALINA_HOME/bin:$PATH
mkdir -p "$CATALINA_HOME" を実行します。
ワークディレクトリ $CATALINA_HOME

gpg --keyserver pool.sks-keyservers.net --recv-keys を実行します \
F22C4FED \
86867BA6 \
E86E29AC \
307A10A5 \
564C17A3 \
0x7C037D42 \
0BECE548 \
5E763BEC \
2F6059E7 \
288584E7 \
4B6FAEFB \
286BACF1 \
731ファビー \
461B342D \
0D498E23 \
DC3D1B18 \
D63011C7 \
30480593

環境変数 TOMCAT_VERSION 8.5.45
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz

実行set -x \
  && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
  && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
  && gpg --verify tomcat.tar.gz.asc \
  && tar -xvf tomcat.tar.gz --strip-components=1 \
  && rm bin/*.bat \
  && rm tomcat.tar.gz*

エクスポーズ8080
CMD ["catalina.sh", "実行"]

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerはjenkins+mavenコード構築および展開プラットフォームを構築します
  • DockerイメージをビルドするためのMavenプラグインの実装手順
  • Maven プラグインを使用して Docker でイメージをビルドする方法
  • Mavenプラグインを使用してDockerイメージを構築する方法についての簡単な説明
  • Docker で Maven プロジェクトをより速くビルドする

<<:  Ant Design Pro ログイン機能にグラフィック検証コード コンポーネントを統合する方法

>>:  MYSQL は、指定されたユーザーのランキングとクエリを実装します。ランキング関数 (並列ランキング関数) のサンプルコード

推薦する

VueのSSRサーバーサイドレンダリング例の詳細な説明

サーバーサイドレンダリング (SSR) を使用する理由検索エンジンのクローラーが完全にレンダリングさ...

MySQL接続クエリの原理と応用

概要MySQL の最も強力な機能の 1 つは、データ取得を実行しながらテーブルを結合できることです。...

CSS スタイルのリセットとクリア (異なるブラウザで同じ効果を表示するため)

異なるブラウザ間でページの表示を一致させるためには、フロントエンド開発において CSS スタイルのク...

MySQLログシステムの使い方に関する簡単なチュートリアル

目次序文1. エラーログ2. バイナリログ1. バイナリログを有効にする2. バイナリログ形式3. ...

Docker+K8S クラスタ環境構築と分散アプリケーション展開

1. Dockerをインストールする yumでdockerをインストール #サービスを開始する sy...

IMG での UserMap の使用例

usemap は <img> タグの属性であり、使用するイメージ マップの名前を指定する...

Linux システム修復モード (シングル ユーザー モード)

目次序文1. シングルユーザーモードでの一般的なバグ修正2. シングルユーザーモードでシステムパスワ...

CentOS で RPM を使用して MySQL 5.6 をインストールするチュートリアル

これまでのプロジェクトはすべて Windows システム環境にデプロイされていました。今回は Lin...

MySQL インデックスに関するヒントのまとめ

目次1. インデックスの基礎知識1.1 インデックスの利点1.2 インデックスの有用性1.3 インデ...

Dockerアーキテクチャ入門

Docker には 3 つの基本概念が含まれています。イメージ: Docker イメージはルート フ...

MySQL 8.0.12 の詳細なインストールおよびアンインストール チュートリアル

1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...

Next.js 入門チュートリアル

目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...

CSS3 の Flex レイアウトの詳細な分析

Flexbox レイアウト モジュールは、コンテナー内のスペースをより効率的に配分する方法を提供する...

mysql maxとwhere間の実行問題の概要

mysql maxとwhereの間の実行の問題SQLを実行します: テーブル「grades」を作成し...