Dockerfile使用OracleJDK创建自定义tomcat8镜像

 

我们默认下载的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
复制代码

 

 



posted @   yvioo  阅读(508)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-06-23 JAVA获取昨天、今天、明天等日期
2020-06-23 IDEA设置调用方法时提示方法上的注释
2020-06-23 Hibernate使用distinct返回不重复的数据,使用group by 进行分组
点击右上角即可分享
微信分享提示