From db3e0a0ed20b44192b41742af63f5f6f4d6961c6 Mon Sep 17 00:00:00 2001 From: Steve Nolen Date: Wed, 27 Apr 2016 13:53:54 -0700 Subject: [PATCH] clean up/bugfix docker build (#892) --- .dockerignore | 2 +- Dockerfile | 50 ++++++++------------------------------------ build.xml | 9 ++++---- docker_entrypoint.sh | 26 +++++++++++------------ 4 files changed, 28 insertions(+), 59 deletions(-) diff --git a/.dockerignore b/.dockerignore index 099d91c0..f722942f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1 @@ -.git/objects/pack \ No newline at end of file +.git/objects/pack/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 64d99345..097ca606 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,52 +1,20 @@ -FROM debian:jessie +FROM tomcat:7 MAINTAINER Steve Nolen # Report issues here: https://github.com/ohmage/server RUN set -x \ && export DEBIAN_FRONTEND=noninteractive \ && apt-get update \ - && apt-get install -y openjdk-7-jdk ant curl libtcnative-1 netcat git mysql-client\ + && apt-get install --no-install-recommends -y openjdk-7-jdk ant ant-optional netcat git\ && apt-get clean \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /usr/local/tomcat/webapps/ROOT \ + && rm -rf /usr/local/tomcat/webapps/docs \ + && rm -rf /usr/local/tomcat/webapps/examples \ + && rm -rf /usr/local/tomcat/webapps/manager \ + && rm -rf /usr/local/tomcat/webapps/host-manager + -# download tomcat -ENV CATALINA_HOME /usr/local/tomcat -ENV PATH $CATALINA_HOME/bin:$PATH -RUN mkdir -p "$CATALINA_HOME" -WORKDIR $CATALINA_HOME - -# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS -RUN gpg --keyserver pool.sks-keyservers.net --recv-keys \ - 05AB33110949707C93A279E3D3EFE6B686867BA6 \ - 07E48665A34DCAFAE522E5E6266191C37C037D42 \ - 47309207D818FFD8DCD3F83F1931D684307A10A5 \ - 541FBE7D8F78B25E055DDEE13C370389288584E7 \ - 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 \ - 713DA88BE50911535FE716F5208B0AB1D63011C7 \ - 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED \ - 9BA44C2621385CB966EBA586F72C284D731FABEE \ - A27677289986DB50844682F8ACB77FC2E86E29AC \ - A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 \ - DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 \ - F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE \ - F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23 - -ENV TOMCAT_MAJOR 7 -ENV TOMCAT_VERSION 7.0.67 -ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz - -RUN set -x \ - && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \ - && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \ - && gpg --verify tomcat.tar.gz.asc \ - && tar -xvf tomcat.tar.gz --strip-components=1 \ - && rm bin/*.bat \ - && rm tomcat.tar.gz* \ - && rm -rf /usr/local/tomcat/webapps/ROOT \ - && rm -rf /usr/local/tomcat/webapps/docs \ - && rm -rf /usr/local/tomcat/webapps/examples \ - && rm -rf /usr/local/tomcat/webapps/manager \ - && rm -rf /usr/local/tomcat/webapps/host-manager #### download flyway (ohmage doesn't do migrations) #### WORKDIR /flyway diff --git a/build.xml b/build.xml index d3932128..143c82a8 100644 --- a/build.xml +++ b/build.xml @@ -3,7 +3,7 @@ - + @@ -238,6 +238,7 @@ by opening it in Eclipse and using Eclipse's aut-correct functionality to clean it up and remove the warnings. + @@ -272,9 +273,9 @@ it up and remove the warnings. - - - + + + diff --git a/docker_entrypoint.sh b/docker_entrypoint.sh index 94498a52..54cff092 100644 --- a/docker_entrypoint.sh +++ b/docker_entrypoint.sh @@ -2,24 +2,25 @@ set -e +# set these to support both --link (deprecated) and newer network container communication. +DB_HOST=mysql +DB_PORT=3306 + # use passed env variable or defaults -DB_HOST=$MYSQL_PORT_3306_TCP_ADDR -DB_PORT=$MYSQL_PORT_3306_TCP_PORT -DB_NAME=${DB_NAME:-ohmage} -DB_USER=${DB_USER:-ohmage} -DB_PASS=${DB_PASS:-ohmage} +MYSQL_DATABASE=${MYSQL_DATABASE:-ohmage} +MYSQL_USER=${MYSQL_USER:-ohmage} +MYSQL_PASSWORD=${MYSQL_PASSWORD:-ohmage} FQDN=${FQDN:-$HOSTNAME} LOG_LEVEL=${LOG_LEVEL:-WARN} -ESCAPED_PW=${DB_PASS/\&/\\&} # cat out ohmage.conf echo "# # DATABASE # db.driver=com.mysql.jdbc.Driver -db.jdbcurl=jdbc:mysql://$DB_HOST:$DB_PORT/$DB_NAME?characterEncoding=utf8 -db.username=$DB_USER -db.password=$ESCAPED_PW +db.jdbcurl=jdbc:mysql://$DB_HOST:$DB_PORT/$MYSQL_DATABASE?characterEncoding=utf8 +db.username=$MYSQL_USER +db.password=$MYSQL_PASSWORD # # LOGGING # @@ -43,9 +44,9 @@ fi # cat out flyway.conf # note that the placeholders wont be updated at each boot. -echo "flyway.url=jdbc:mysql://$DB_HOST:$DB_PORT/$DB_NAME -flyway.user=$DB_USER -flyway.password=$DB_PASS +echo "flyway.url=jdbc:mysql://$DB_HOST:$DB_PORT/$MYSQL_DATABASE +flyway.user=$MYSQL_USER +flyway.password=$MYSQL_PASSWORD flyway.placeholders.fqdn=$FQDN flyway.placeholders.base_dir=/var/lib/ohmage" > /flyway/conf/flyway.conf @@ -57,7 +58,6 @@ do sleep 1 done echo 'mysql available.' -mysql -uroot -p$MYSQL_ENV_MYSQL_ROOT_PASSWORD -h$DB_HOST -P$DB_PORT mysql -e "CREATE DATABASE IF NOT EXISTS $DB_NAME; grant all on $DB_NAME.* to \"$DB_USER\"@\"%\" IDENTIFIED BY \"$DB_PASS\"; FLUSH PRIVILEGES;" # execute migrations /flyway/flyway migrate