本文介绍了基于华为欧拉操作系统(openEuler)制作一个容器镜像(docker image),并且完成部署tomcat+war的全部过程,生成的Dockerfile可以用于部署此类J2EE应用。

1. 环境准备

上述文件需要和Dockerfile放在同一个目录中。

2. 编辑Dockerfile

# 基础镜像,这里采用华为欧拉openeuler 22.03版本
FROM openeuler/openeuler:22.03
# 设置系统编码
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& dnf update -y \
&& dnf upgrade -y \
&& dnf install -y glibc-all-langpacks \
&& echo -e 'export LANG="zh_CN.UTF-8"\nexport LC_ALL="zh_CN.UTF-8"' > /etc/locale.conf \
&& source /etc/locale.conf
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
# 安装jdk1.8+tomcat8
# 切换镜像目录,进入/usr目录
WORKDIR /usr
# 在/usr/下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
# 在/usr/下创建tomcat目录,用来存放tomcat
RUN mkdir tomcat
# 将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下,docker会自动解压缩
ADD jdk-8u351-linux-x64.tar.gz /usr
RUN mv /usr/jdk1.8.0_351 /usr/jdk1.8
# 将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下,docker会自动解压缩
ADD apache-tomcat-8.5.87.tar.gz /usr
RUN mv /usr/apache-tomcat-8.5.87 /usr/tomcat8

# 设置环境变量
ENV JAVA_HOME=/usr/jdk1.8
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH

# 将应用程序拷贝到tomcat的webapps目录下
COPY test.war /usr/tomcat8/webapps/test.war

#公开端口
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/usr/tomcat8/bin/catalina.sh","run"]

3. 编译并运行Dockerfile

启动一个tomcat容器,测试应用是否可以正常启动

docker build -t openeuler8-tomcat8-test:1.0 .
docker run -itd --name test -p 8080:8080 openeuler8-tomcat8-test:1.0

之后使用浏览器访问http://localhost:8080/test,测试应用是否运行正常。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐