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