1. 程式人生 > >dockerfile用源碼包構建tomcat服務

dockerfile用源碼包構建tomcat服務

docker 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服務