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

推薦する

Docker ネットワークの原理とカスタム ネットワークの詳細な分析

Docker はホストマシン上のブリッジを仮想化します。コンテナを作成して起動すると、各コンテナには...

Docker Compose ワンクリック ELK デプロイ方式の実装

インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...

Ubuntu システムにおける Mysql ERROR 1045 (28000): ユーザー root@localhost へのアクセスが拒否される問題の解決方法

最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...

JavaScript でシンプルなクリスマス ゲームを実装する

目次序文成果を達成するコードCSSコードJSコードHTMLコードデモンストレーションのプロセス序文ク...

MySQL 8.0 の binlog の詳細な説明

1 はじめにバイナリ ログは、データを持つ、またはデータを変更する可能性がある SQL ステートメン...

WeChatミニプログラムのすべてのページがログインされていることを確認する方法

目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...

Mysql トランザクションで Update を実行するとテーブルがロックされますか?

2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレー...

WeChatアプレットがユーザーの移動軌跡を記録

目次設定を追加json 構成レイヤー構成の表示論理層の構成位置追跡をオンにする録音を開始開始座標を決...

Gobangゲームを実現するためのjsキャンバス

この記事では、Gobangゲームを実装するためのキャンバスの具体的なコードを参考までに共有します。具...

Linux コマンドラインからファイルを削除する実用的な方法

rm コマンドrm コマンドは、ファイルを削除するときによく使用されるコマンドです。ファイルまたはデ...

JavaScript Canvas で三目並べゲームを実装

この記事では、JavaScript Canvasで三目並べゲームを実装するための具体的なコードを参考...

VMware10 での CentOS 7 のインストールと設定のチュートリアル

Ubuntu が今日のデスクトップ ユーザーの間で最も人気のある Linux オペレーティング シス...

ウェブカラーのコントラストと調和のテクニックの共有

色のコントラストと調和対照的な状況では、色の相互作用は単一の色によって与えられる感覚とは異なります。...

優れた Web UI ライブラリ/フレームワーク 10 選

1. ITミルツールキットIT Mill Toolkit は、リッチ Web アプリケーション用のウ...

HTML テーブル マークアップ チュートリアル (15): テーブル タイトル

<br />このタグを使用すると、表のタイトルを直接追加し、タイトル テキストの配置プロ...