Dockerfile使用OracleJDK创建自定义tomcat8镜像
阅读原文时间:2023年07月08日阅读:1

我们默认下载的tomcat镜像是用的openjdk ,但是我们有些项目必须使用oraclejdk 那就不能使用官方的tomcat镜像,只能重新自定义一个镜像

Dockerfile文件

FROM centos:7

#把java与tomcat添加到容器中
ADD jdk-8u161-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.59.tar.gz /usr/local/
#安装 vim编辑器
RUN yum -y install vim

设置工作访问时候的WORKDIR路径, 登录落脚点

ENV MYPATH /usr/local/
WORKDIR $MYPATH

#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_161
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.59
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.59
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#容器运行时监听的端口
EXPOSE 8080

启动时运行tomcat

ENTRPOINT ["/usr/local/apache-tomcat-8.5.59/bin/startup.sh"]

CMD ["/usr/local/apache-tomcat-8.5.59/bin/catalina.sh","run"]

CMD /usr/local/apache-tomcat-8.5.59/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.59/logs/catalina.out

jdk-8u161-linux-x64.tar.gz 这是jdk1.8的压缩包

apache-tomcat-8.5.59.tar.gz 这是tomcat8的压缩包 下载地址:https://yvioo.lanzoui.com/i851wtevfqf

(使用ADD命令会自动解压)

这个可以根据自己的来 但是文件对应的名称也要改

配置完之后 当前目录执行

docker build -t mytomcat8 .

然后启动

docker run -itd -p 9090:8080 --name="mytomcat8" -v /data/tomcat8/webapps:/usr/local/apache-tomcat-8.5.59/webapps -v /data/tomcat8/logs:/usr/local/apache-tomcat-8.5.59/logs --privileged=true mytomcat8

然后把项目放到

/data/tomcat8/webapps

然后访问9090端口

docker-compose.yml写法

version: '3'
services:
tomcat8:
build:
context: ./tomcat8 #Dockerfile 所在目录
dockerfile: Dockerfile
image: tomcat8
container_name: tomcat8
ports:
- 9090:8080
network_mode: "host"
restart: always
privileged: true
volumes:
- /data/tomcat/webapps:/usr/local/tomcat/webapps
- /data/tomcat/logs:/usr/local/tomcat/logs
- /data/tomcat/conf:/usr/local/tomcat/conf