中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker構建Maven+Tomcat基礎鏡像的實現

發布時間:2020-10-24 11:46:58 來源:腳本之家 閱讀:301 作者:mickjoust 欄目:服務器

前言

在 Java 編程中,大多數應用都是是基于 Maven 構建的,而交付的結果大多是采用的 Tomcat 的 war 包形式,所以,構建一個基于 Maven 和 Tomcat 的基礎鏡像很有必要,不僅能幫助我們提升平時自主實驗研究分析的效率,還可以在一定程度能減少運維減少編寫 Dockerfile 的復雜度,提升整體項目交付效率。

1.創建編譯目錄

mkdir -p build_docker
cd build_docker
vim Dockerfile

2.編寫 Dockerfile

首先,我們選擇官方維護的 maven:3.3.3 鏡像作為基礎鏡像,然后,在此基礎上添加 Tomcat 支持。

FROM maven:3.3.3 

如果喜歡國內倉庫的速度,也可以選擇阿里的 maven:3-jdk-8。

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

其次,設置 Tomcat 相關的環境變量,并添加到系統 PATH 變量中,使 Tomcat 的啟動腳本可以在 Shell 中直接訪問。

ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME

第三,添加 Tomcat GPG-KEY,用于 Tomcat 下載完后校驗文件是否正確,以下keyid數據來自官方 Tomcat-8。

RUN gpg --keyserver pool.sks-keyservers.net --recv-keys \
F22C4FED \
86867BA6 \
E86E29AC \
307A10A5 \
564C17A3 \
0x7C037D42 \
0BECE548 \
5E763BEC \
2F6059E7 \
288584E7 \
4B6FAEFB \
286BACF1 \
731FABEE \
461B342D \
0D498E23 \
DC3D1B18 \
D63011C7 \
30480593

第四,設置 Tomcat 版本變量,構建時可以傳入相應參數來更改 Tomcat 版本。因為 maven:3.3.3 鏡像依賴的 Java 版本是 1.8,,所以我們的 Tomcat 版本也選擇 8.X 版本,保持編譯一致性可以最大化 Tomcat 的性能。

這里我們選用最新版:8.5.45

隨后使用 curl 執行下載,并驗證后解壓,同時刪除多余的 bat 腳本。(該腳本僅用于 Windows 環境,在Linux/Mac鏡像中無用)

ENV 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

RUN 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*

第五,暴露 Tomcat 默認的 8080 端口,并指定基于該鏡像的容器啟動時執行的腳本,該腳本為 Tomcat 啟動腳本。

EXPOSE 8080
CMD ["catalina.sh", "run"]

3.構建鏡像

docker build -t base-maven-tomcat . 

到此,完成。

附:完整 Dockerfile 文件

FROM maven:3.3.3

ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME

RUN gpg --keyserver pool.sks-keyservers.net --recv-keys \
F22C4FED \
86867BA6 \
E86E29AC \
307A10A5 \
564C17A3 \
0x7C037D42 \
0BECE548 \
5E763BEC \
2F6059E7 \
288584E7 \
4B6FAEFB \
286BACF1 \
731FABEE \
461B342D \
0D498E23 \
DC3D1B18 \
D63011C7 \
30480593

ENV 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

RUN 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*

EXPOSE 8080
CMD ["catalina.sh", "run"]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙游县| 津南区| 西畴县| 娄底市| 离岛区| 基隆市| 绿春县| 池州市| 天峻县| 澄城县| 荣昌县| 巢湖市| 黄平县| 偏关县| 涪陵区| 宁城县| 虎林市| 简阳市| 晋州市| 承德市| 高碑店市| 滕州市| 津市市| 潮州市| 茶陵县| 恩施市| 公主岭市| 临泉县| 鄂托克前旗| 康保县| 岑巩县| 湖北省| 林口县| 黄陵县| 新田县| 如皋市| 都安| 西峡县| 甘德县| 枝江市| 商南县|