├── README.md ├── LICENSE ├── Dockerfile └── tomcat7.sh /README.md: -------------------------------------------------------------------------------- 1 | ## dockerfile-jdk-tomcat 2 | 3 | A Dockerfile that installs the latest jdk7, tomcat7. 4 | 5 | ### Prerequisite 6 | 7 | Get and [install Docker](http://www.docker.io/gettingstarted/)! 8 | 9 | You should be able to run the docker command line without sudo. Otherwise you will have to make some adjustments. 10 | 11 | ### Usage 12 | 13 | Bulid a new image: 14 | ``` 15 | $ git clone https://github.com/agileshell/dockerfile-jdk-tomcat.git 16 | $ cd dockerfile-jdk-tomcat 17 | $ sudo docker build -t dockerfile-jdk-tomcat . 18 | # OR 19 | $ sudo docker build -t dockerfile-jdk-tomcat https://github.com/agileshell/dockerfile-jdk-tomcat.git 20 | ``` 21 | 22 | We can now fire a new container based on this image: 23 | ``` 24 | $ sudo docker run -d -p 8090:8080 dockerfile-jdk-tomcat 25 | ``` 26 | After few seconds, open `http://:8090` to see the welcome page. 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, zing.wang 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Pull base image 2 | FROM ubuntu:13.10 3 | 4 | MAINTAINER zing wang "zing.jian.wang@gmail.com" 5 | 6 | # update source 7 | RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list 8 | RUN apt-get update 9 | 10 | # Install curl 11 | RUN apt-get -y install curl 12 | 13 | # Install JDK 7 14 | RUN cd /tmp && curl -L 'http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz' -H 'Cookie: oraclelicense=accept-securebackup-cookie; gpw_e24=Dockerfile' | tar -xz 15 | RUN mkdir -p /usr/lib/jvm 16 | RUN mv /tmp/jdk1.7.0_65/ /usr/lib/jvm/java-7-oracle/ 17 | 18 | # Set Oracle JDK 7 as default Java 19 | RUN update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-oracle/bin/java 300 20 | RUN update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-oracle/bin/javac 300 21 | 22 | ENV JAVA_HOME /usr/lib/jvm/java-7-oracle/ 23 | 24 | # Install tomcat7 25 | RUN cd /tmp && curl -L 'http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz' | tar -xz 26 | RUN mv /tmp/apache-tomcat-7.0.8/ /opt/tomcat7/ 27 | 28 | ENV CATALINA_HOME /opt/tomcat7 29 | ENV PATH $PATH:$CATALINA_HOME/bin 30 | 31 | ADD tomcat7.sh /etc/init.d/tomcat7 32 | RUN chmod 755 /etc/init.d/tomcat7 33 | 34 | # Expose ports. 35 | EXPOSE 8080 36 | 37 | # Define default command. 38 | ENTRYPOINT service tomcat7 start && tail -f /opt/tomcat7/logs/catalina.out 39 | -------------------------------------------------------------------------------- /tomcat7.sh: -------------------------------------------------------------------------------- 1 | export JAVA_HOME=/usr/lib/jvm/java-7-oracle/ 2 | export JAVA_OPTS="-Dfile.encoding=UTF-8 \ 3 | -Dcatalina.logbase=/var/log/tomcatProd \ 4 | -Dnet.sf.ehcache.skipUpdateCheck=true \ 5 | -XX:+UseConcMarkSweepGC \ 6 | -XX:+CMSClassUnloadingEnabled \ 7 | -XX:+UseParNewGC \ 8 | -XX:MaxPermSize=128m \ 9 | -Xms512m -Xmx512m" 10 | export PATH=$JAVA_HOME/bin:$PATH 11 | TOMCAT_HOME=/opt/tomcat7 12 | SHUTDOWN_WAIT=20 13 | export CATALINA_OPTS="-Xmx512m" 14 | 15 | export CATALINA_BASE=/opt/tomcat7 16 | 17 | tomcat_pid() { 18 | echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep $CATALINA_BASE | grep -v grep | awk '{ print $2 }'` 19 | } 20 | start() { 21 | pid=$(tomcat_pid) 22 | if [ -n "$pid" ] 23 | then 24 | echo "Tomcat is already running (pid: $pid)" 25 | else 26 | # Start tomcat 27 | echo "Starting tomcat" 28 | #ulimit -n 100000 29 | umask 007 30 | $TOMCAT_HOME/bin/startup.sh 31 | fi 32 | return 0 33 | } 34 | 35 | stop() { 36 | pid=$(tomcat_pid) 37 | if [ -n "$pid" ] 38 | then 39 | echo "Stoping Tomcat" 40 | if [ "$USER" == "$TOMCAT_USER" ] 41 | then 42 | $TOMCAT_HOME/bin/shutdown.sh 43 | else 44 | /bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh 45 | fi 46 | 47 | let kwait=$SHUTDOWN_WAIT 48 | count=0; 49 | until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ] 50 | do 51 | echo -n -e "\nwaiting for processes to exit"; 52 | sleep 1 53 | let count=$count+1; 54 | done 55 | 56 | if [ $count -gt $kwait ]; then 57 | echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds" 58 | kill -9 $pid 59 | fi 60 | else 61 | echo "Tomcat is not running" 62 | fi 63 | return 0 64 | } 65 | 66 | case $1 in 67 | start) 68 | start 69 | ;; 70 | stop) 71 | stop 72 | ;; 73 | restart) 74 | stop 75 | start 76 | ;; 77 | status) 78 | pid=$(tomcat_pid) 79 | if [ -n "$pid" ] 80 | then 81 | echo "Tomcat is running with pid: $pid" 82 | else 83 | echo "Tomcat is not running" 84 | fi 85 | ;; 86 | esac 87 | exit 0 88 | --------------------------------------------------------------------------------