dockerfile用源码包构建tomcat服务

简介:

一、说明

centos基于docker官方镜像来制作的,用tomcat源码包生成的镜像,本环境中tomcat安装目录位于:/usr/local/,jdk安装目录位于:/usr/,如果你使用dockerfile buid此镜像,你要提前下载好jdk、tomcat源码包,在此文本中用的版本为apache-tomcat-8.0.24、jdk1.8.0_131,并且还配置了服务器的时间区,里面#号为注释掉的内容可以不用管它。


二、Dockerfile

FROM centos:latest


MAINTAINER ganbing87@126.com


ENV TIME_ZONE Asia/Shanghai

ENV JAVA_HOME /usr/jdk1.8.0_131/

ENV PATH $PATH:$JAVA_HOME/bin

ENV TOMCAT_HOME /usr/local/apache-tomcat-8.0.24/


COPY ./apache-tomcat-8.0.24.tar.gz /usr/src

COPY ./jdk-8u131-linux-x64.tar.gz /usr/src


RUN set -x \

        \

        && yum -y update \

        && tar zxf /usr/src/apache-tomcat-8.0.24.tar.gz -C /usr/local \

        && rm -rf /usr/src/apache-tomcat-8.0.24.tar.gz \

        && tar zxf /usr/src/jdk-8u131-linux-x64.tar.gz -C /usr \

        && rm -rf /usr/src/jdk-8u131-linux-x64.tar.gz \

        && echo "${TIME_ZONE}" > /etc/timezone \

        && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime


COPY ./shutdown.sh /usr/local/apache-tomcat-8.0.24/bin

#ADD run.sh /run.sh

#RUN chmod +x /run.sh


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

#CMD ["/run.sh"]

EXPOSE 8080

~              


三、附件(shutdown.sh)


#!/bin/bash

ps -ef |grep /usr/local/apache-tomcat-8.0.24 |grep -v grep |awk '{print $2}' |xargs kill -9



四、运行容器

1、环境:


centos7.2+tomcat8.0.24+jdk1.8.0


2、用dockerfile构建tomcat镜像

docker build -t tomcat:8.0.24 .


3、查看镜像是否构建成功

docker images


4、运行


docker run -d -p 8080:8080 tomcat:8.0.24 bash


    -d:后台启动,并生成容器id


    -p:映射主机的8080端口至tomcat容器的8080端口


5、测试:


用浏览器访问docker主机的IP地址,要注意不是容器的IP地址,比如主机IP为172.16.0.1,http://172.16.0.1:8080



本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/2049279,如需转载请自行联系原作者

相关文章
|
4天前
|
应用服务中间件 容器
从零手写实现 tomcat-07-war 如何解析处理三方的 war 包?
这是一个关于构建Web应用和理解类加载器的文章摘要。作者探讨了如何解析和处理WAR包,使用Netty权威指南系列(BIO, NIO, AIO)作为背景阅读。文章通过一个简单的Web项目实例,展示了项目的目录结构,包括`pom.xml`, `web.xml`和`IndexServlet`。作者还介绍了自定义的`WebAppClassLoader`,它扩展了`URLClassLoader`,用于根据类路径加载非当前项目类。最后提到了一个名为mini-cat的开源项目,它是简易版Tomcat实现,可在GitHub上找到。
|
5天前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
259 2
|
5天前
|
安全 Java 应用服务中间件
阿里技术官架构使用总结:Spring+MyBatis源码+Tomcat架构解析等
分享Java技术文以及学习经验也有一段时间了,实际上作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。
|
5天前
|
应用服务中间件
jeecgboot开发环境服务启动刷新没问题,部署到tomcat,F5刷新或者浏览器刷新,会出现404
jeecgboot开发环境服务启动刷新没问题,部署到tomcat,F5刷新或者浏览器刷新,会出现404
10 0
|
4天前
|
存储 Java 应用服务中间件
Springboot项目打war包部署到外置tomcat容器【详解版】
该文介绍了将Spring Boot应用改为war包并在外部Tomcat中部署的步骤:1) 修改pom.xml打包方式为war;2) 排除内置Tomcat依赖;3) 创建`ServletInitializer`类继承`SpringBootServletInitializer`;4) build部分需指定`finalName`;5) 使用`mvn clean package`打包,将war包放入外部Tomcat的webapps目录,通过startup脚本启动Tomcat并访问应用。注意,应用访问路径和静态资源引用需包含war包名。
|
5天前
|
应用服务中间件
今日分享记录:WIN10中如何将tomcat注册到Server服务中
今日分享记录:WIN10中如何将tomcat注册到Server服务中
63 1
|
5天前
|
Java 应用服务中间件
SpringBoot 项目war包部署 配置外置tomcat方法
SpringBoot 项目war包部署 配置外置tomcat方法
78 0
|
5天前
|
设计模式 算法 前端开发
Tomcat的源码剖析, 启动过程你会吗?
基于JMX Tomcat会为每个组件进行注册过程,通过Registry管理起来,而Registry是基于JMX来实现的,因此在看组件的init和start过程实际上就是初始化MBean和触发MBean的start方法,会大量看到形如: Registry.getRegistry(null, null).invoke(mbeans, "init", false); Registry.getRegistry(null, null).invoke(mbeans, "start", false); 这样的代码,这实际上就是通过JMX管理各种组件的行为和生命期。
10 0
|
5天前
|
前端开发 Java 应用服务中间件
架构篇:Tomcat 高层组件构建一个商业帝国
架构篇:Tomcat 高层组件构建一个商业帝国
299 6
|
5天前
|
监控 Java 应用服务中间件
【Linux】Web服务之Tomcat服务
【Linux】Web服务之Tomcat服务
42 0