一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - Docker構建Maven+Tomcat基礎鏡像的實現

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

2021-04-04 21:59mickjoust 服務器知識

這篇文章主要介紹了Docker構建Maven+Tomcat基礎鏡像的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

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

1.創建編譯目錄

?
1
2
3
mkdir -p build_docker
cd build_docker
vim Dockerfile

2.編寫 Dockerfile

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

?
1
FROM maven:3.3.3

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

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

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

?
1
2
3
4
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。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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鏡像中無用)

?
1
2
3
4
5
6
7
8
9
10
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 啟動腳本。

?
1
2
EXPOSE 8080
CMD ["catalina.sh", "run"]

3.構建鏡像

?
1
docker build -t base-maven-tomcat .

到此,完成。

附:完整 Dockerfile 文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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"]

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

原文鏈接:https://blog.csdn.net/mickjoust/article/details/100515893

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成+人+综合+亚洲欧美丁香花 | 精品国产线拍大陆久久尤物 | 免费高清视频日本 | 国产短视频精品一区二区三区 | 精品视频手机在线观看免费 | 牧教师| 欧美vpswindowssex| 5555kkkk香蕉在线观看 | 久久午夜夜伦痒痒想咳嗽P 久久无码AV亚洲精品色午夜麻豆 | 香蕉免费一区二区三区 | 5月色婷婷| 我与旗袍老师疯狂床震 | 99国产热 | 国产精品一区久久精品 | 国产精品视频第一区二区三区 | 国产精品久久国产三级国电话系列 | 国产香蕉97碰碰久久人人 | 国产第一草草影院 | 色呦呦在线免费观看 | 国语自产拍在线播放不卡 | 日韩欧美国产在线 | 好大好湿好硬好爽好深免费视频 | 欧美大b | 大桥未久aⅴ一区二区 | 欧美日韩亚洲成人 | 国产精品第 | 2019nv天堂香蕉在线观看 | 日韩去日本高清在线 | bl文全肉高h湿被灌尿 | 催眠 迷j系列小说 | 日本xxxxx高清免费观看 | 好爽好粗 | 男同巨黄gay小说好爽 | 午夜国产在线 | 精品久久伦理中文字幕 | japanesexxxx在线播放 | 免费看a视频 | 日产2021免费一二三四区 | 欧美亚洲国产一区二区三区 | 色综合图区 | 精品无人区一区二区三区 |