部署准备

  • 安装docker环境

部署步骤

安装docker环境

1
apt update && sh <(curl -fsSL https://get.docker.com)

测试

1
docker version

拉取alpine和ubuntu镜像,这里也可以直接拉官方的,我是拉本地仓的
pull-images
创建目录,先编译基于alpine镜像

1
mkdir /Dockerfile/web/tomcat/{alpine,ubuntu} -p && cd /Dockerfile/web/tomcat/alpine

创建dockerfile文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cat << EOF > dockerfile
FROM harbor.test.com/tomcat/alpine-tomcat:v1.0
LABEL autor="lee"
ENV tomcat_version=8.5.90 PATH=/usr/local/tomcat/bin:$PATH
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/' /etc/apk/repositories \
&& apk add --no-cache openjdk8 \
#因为alpine要支持 oracle jdk 需要安装几个库依赖文件,这里就不折腾了
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone \
&& addgroup tomcat -g 2023 && adduser -Gtomcat -u 2023 -D tomcat \
&& wget -P /usr/local http://pan.alybaba.top/soft/apache-tomcat-${tomcat_version}.tar.gz \
#这里可使用 ADD 进行添加,我偷个懒...
&& tar xf /usr/local/apache-tomcat-${tomcat_version}.tar.gz -C /usr/local \
&& ln -s /usr/local/apache-tomcat-${tomcat_version} /usr/local/tomcat \
&& rm -rf /usr/local/*.tar.gz \
&& chown -R tomcat.tomcat /usr/local/apache-tomcat-${tomcat_version}/
CMD ["catalina.sh","run"]
EXPOSE 8080
EOF

接下来执行build,可以看到没有问题,然后执行一下,一个简单的alpine+tomcat就完成了
build-images
web端查看,可以看到没有问题,接下来试试ubuntu
web
进入目录

1
cd ../ubuntu

创建文件

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
cat << EOF > dockerfile
FROM harbor.test.com/tomcat/ubuntu-tomcat:v1.0
LABEL autor="lee"
ENV tomcat_version=8.5.90 jdk_version=1.8.0_371 PATH=/usr/local/tomcat/bin:$PATH \
#JAVA_HOME=/usr/local/jdk \
#PATH=${PATH}:${JAVA_HOME}/bin JRE_HOME=${JAVA_HOME}/jre \
#CLASSPATH=.:${JAVA_HOME}/lib/:${JRE_HOME}/lib/ PATH=/usr/local/tomcat/bin:${PATH}
#我在脚本source了,这里我也懒的给变量了
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list \
&& apt update; export DEBIAN_FRONTEND=noninteractive && apt install -y tzdata wget \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone \
&& groupadd tomcat -g 2023 && useradd tomcat -u 2023 -g tomcat && rm -rf /var/lib/apt/lists/* \
&& wget -P /usr/local http://pan.alybaba.top/soft/jdk-${jdk_version}-linux-x64.tar.gz \
#这里下载纯属偷懒,一般下载到构建目录用 ADD 复制进去,自动解压
&& tar xf /usr/local/jdk-${jdk_version}-linux-x64.tar.gz -C /usr/local \
&& ln -s /usr/local/jdk${jdk_version} /usr/local/jdk \
&& echo "export JAVA_HOME=/usr/local/jdk\nexport PATH=\$PATH:\$JAVA_HOME/bin\nexport JRE_HOME=\$JAVA_HOME/jre\nexport CLASSPATH=.:\$JAVA_HOME/lib/:\$JRE_HOME/lib/" > /etc/profile.d/jdk.sh \
&& wget -P /usr/local http://pan.alybaba.top/soft/apache-tomcat-${tomcat_version}.tar.gz \
&& tar xf /usr/local/apache-tomcat-${tomcat_version}.tar.gz -C /usr/local \
&& ln -s /usr/local/apache-tomcat-${tomcat_version} /usr/local/tomcat && apt autoremove -y wget \
&& echo 'PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh && rm -rf /usr/local/*.tar.gz \
&& chown -R tomcat.tomcat /usr/local/tomcat && echo 'JAVA_HOME=/usr/local/jdk' > /usr/local/tomcat/conf/tomcat.conf
COPY entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 8080
EOF

创建entrypoint脚本………

1
2
3
4
5
6
7
cat << EOF entrypoint.sh
#!/bin/bash
. /etc/profile.d/jdk.sh
#tomcat的变量我写进去了....
sleep 1
catalina.sh run
EOF

构建镜像

1
chmod +x entrypoint  && docker build -t ubuntu-tomcat:v1.0.1 .

可以看到很大….
build-images
那我们来访问试试,没问题。那么到这里就简单完成了docker镜像构建
web-test-2

参考资料