dockerfile制作tomcat7镜像
近几年来java使用的地方越来越多,很多公司都在招java开发,java前端等等,对运维也造成了一定的影响,在很多开发使用同一台服务器的情况下,要保证他们之间的调试互相不受影响,又要保证环境的一致性,使用docker来完成这样的事是最合适的.
1.tomcat7-jdk7的dockerfile:
FROM debian:jessie MAINTAINER rocdk890 ENV LANG C.UTF-8 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone \ && ntpdate cn.pool.ntp.org ENV TOMCATVER 7.0.73 RUN (apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-7-jre-headless wget) RUN (wget -O /tmp/tomcat7.tar.gz http://archive.apache.org/dist/tomcat/tomcat-7/v${TOMCATVER}/bin/apache-tomcat-${TOMCATVER}.tar.gz && \ cd /opt && \ tar zxf /tmp/tomcat7.tar.gz && \ mv /opt/apache-tomcat* /opt/tomcat && \ rm /tmp/tomcat7.tar.gz) ADD ./run.sh /usr/local/bin/run ### to deploy a specific war to ROOT, uncomment the following 2 lines and specify the appropriate .war #RUN rm -rf /opt/tomcat/webapps/docs /opt/tomcat/webapps/examples /opt/tomcat/webapps/ROOT #ADD yourfile.war /opt/tomcat/webapps/ROOT.war EXPOSE 8080 CMD ["/usr/local/bin/run"]
run.sh的内容:
#!/bin/bash ADMIN_USER=${ADMIN_USER:-admin} ADMIN_PASS=${ADMIN_PASS:-tomcat} MAX_UPLOAD_SIZE=${MAX_UPLOAD_SIZE:-52428800} CATALINA_OPTS=${CATALINA_OPTS:-"-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom"} export CATALINA_OPTS="${CATALINA_OPTS}" cat << EOF > /opt/tomcat/conf/tomcat-users.xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <user username="${ADMIN_USER}" password="${ADMIN_PASS}" roles="admin-gui,manager-gui"/> </tomcat-users> EOF if [ -f "/opt/tomcat/webapps/manager/WEB-INF/web.xml" ] then sed -i "s#.*max-file-size.*#\t<max-file-size>${MAX_UPLOAD_SIZE}</max-file-size>#g" /opt/tomcat/webapps/manager/WEB-INF/web.xml sed -i "s#.*max-request-size.*#\t<max-request-size>${MAX_UPLOAD_SIZE}</max-request-size>#g" /opt/tomcat/webapps/manager/WEB-INF/web.xml fi exec /opt/tomcat/bin/catalina.sh run
2.tomcat8-jdk8的dockerfile:
FROM ubuntu:14.04 MAINTAINER rocdk890 ENV TOMCAT_VERSION 8.0.46 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone \ && ntpdate cn.pool.ntp.org # Set locales RUN locale-gen en_GB.UTF-8 ENV LANG en_GB.UTF-8 ENV LC_CTYPE en_GB.UTF-8 # Fix sh RUN rm /bin/sh && ln -s /bin/bash /bin/sh # Install dependencies RUN apt-get update && \ apt-get install -y git build-essential curl wget software-properties-common # Install JDK 8 RUN \ echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \ add-apt-repository -y ppa:webupd8team/java && \ apt-get update && \ apt-get install -y oracle-java8-installer wget unzip tar && \ rm -rf /var/lib/apt/lists/* && \ rm -rf /var/cache/oracle-jdk8-installer # Define commonly used JAVA_HOME variable ENV JAVA_HOME /usr/lib/jvm/java-8-oracle # Get Tomcat RUN wget --quiet --no-cookies http://apache.rediris.es/tomcat/tomcat-8/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz -O /tmp/tomcat.tgz && \ tar xzvf /tmp/tomcat.tgz -C /opt && \ mv /opt/apache-tomcat-${TOMCAT_VERSION} /opt/tomcat && \ rm /tmp/tomcat.tgz && \ rm -rf /opt/tomcat/webapps/examples && \ rm -rf /opt/tomcat/webapps/docs && \ rm -rf /opt/tomcat/webapps/ROOT # Add admin/admin user ADD tomcat-users.xml /opt/tomcat/conf/ ENV CATALINA_HOME /opt/tomcat ENV PATH $PATH:$CATALINA_HOME/bin EXPOSE 8080 EXPOSE 8009 VOLUME "/opt/tomcat/webapps" WORKDIR /opt/tomcat # Launch Tomcat CMD ["/opt/tomcat/bin/catalina.sh", "run"]
tomcat-users.xml的内容:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-status"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <user name="admin" password="admin" roles="admin-gui,admin-script,manager-gui,manager-status,manager-script,manager-jmx"/> </tomcat-users>
好了,这里给大家2个tomcat的环境,应该可以满足大部分的需求了,如果还有特殊需求,就只能自己改了.
评论: