dockerfile用源码包构建tomcat服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]


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



以上是关于dockerfile用源码包构建tomcat服务的主要内容,如果未能解决你的问题,请参考以下文章

dockerfile用源码包搭建nginx服务器

Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线

Dockerfile 构建java环境tomcaat镜像

dockerfile构建Nginx,Tomcat镜像

dockerfile构建Nginx,Tomcat镜像

dockerfile构建Nginx,Tomcat镜像