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

推薦する

MySQL sql_modeクエリと設定の詳細な説明

1. SQLを実行して表示する @@session.sql_mode を選択します。 グローバルレベ...

CentOS 7 構成 Tomcat9+MySQL ソリューション

Tomcatの設定まずTomcatをインストールするTomcatのインストールは、Tomcatのイン...

select @@session.tx_read_only が DB に大量に出現するのはなぜですか?

問題を見つける上位の SQL ステートメントを取得すると、DB が大量のselect @@sessi...

いくつかの面接の質問を使ってJavaScriptの実行メカニズムを調べる

目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...

Linux でソフトウェア パッケージのバージョンをアップグレードする方法の詳細な説明

Linux環境で、特定のソフトウェア(パッケージ)がインストールされているかどうかを確認したい。 r...

無効と読み取り専用で入力を読み取り専用に設定する

読み取り専用入力を実現するには、無効と読み取り専用の 2 つの方法があります。当然、どちらの結果も読...

Unicode署名BOMによる事故原因の分析

ここでは、通常ヘッダーとフッターに対して行われるインクルード ファイルを使用している可能性があります...

HTMLからReactを実装する方法を教えます

ReactとはReact は、効率的で高速なユーザー インターフェイスを構築するためのシンプルな J...

Ubuntu 18.04 サーバーのパスワードを忘れたり改ざんされた場合にパスワードをリセットする方法

最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...

Linux での JDK と Tomcat のアップロードと設定に関する詳細なチュートリアル

準備1. 仮想マシンを起動する2. gitツールルートアカウントでログインルートアカウントを使用して...

Linux サーバーのスクリプトを自動的にバックアップする方法 (mysql、添付ファイルのバックアップ)

1.backup.shスクリプトファイルを作成する #!/bin/sh ソースフォルダ=/データ ...

インデックスを使用して MySQL ORDER BY ステートメントを最適化する方法

テーブルの作成とインデックスの作成 テーブルtbl1を作成( id int ユニーク、sname v...

MySQLのインストールと設定に関する詳細なチュートリアル

目次インストール不要のMySQLバージョン1. インストール パッケージをダウンロードします。 2....

JavaScript 型検出方法の例のチュートリアル

序文JavaScriptはWebフロントエンドで広く使われている言語の一つであり、Webアプリケーシ...

MySQLデータ移行方法とツールの分析

この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...