From 350fdbeec12158b822246ba6f8d144e21e849f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20L=C3=A9aut=C3=A9?= Date: Thu, 12 Nov 2015 17:28:56 -0800 Subject: [PATCH] switch to Java 8 + cleanup --- integration-tests/docker/Dockerfile | 73 ++++++++++++++++------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/integration-tests/docker/Dockerfile b/integration-tests/docker/Dockerfile index 02cedcc461a..fd4a9fafa78 100644 --- a/integration-tests/docker/Dockerfile +++ b/integration-tests/docker/Dockerfile @@ -1,15 +1,15 @@ FROM ubuntu:14.04 -# Add Java 7 repository -RUN apt-get update -RUN apt-get install -y software-properties-common -RUN apt-add-repository -y ppa:webupd8team/java -RUN apt-get update - -# Oracle Java 7 -RUN echo oracle-java-7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections -RUN apt-get install -y oracle-java7-installer -RUN apt-get install -y oracle-java7-set-default +# Java 8 +RUN apt-get update \ + && apt-get install -y software-properties-common \ + && apt-add-repository -y ppa:webupd8team/java \ + && apt-get purge --auto-remove -y software-properties-common \ + && apt-get update \ + && echo oracle-java-8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections \ + && apt-get install -y oracle-java8-installer \ + && apt-get install -y oracle-java8-set-default \ + && rm -rf /var/cache/oracle-jdk8-installer # MySQL (Metadata store) RUN apt-get install -y mysql-server @@ -18,43 +18,51 @@ RUN apt-get install -y mysql-server RUN apt-get install -y supervisor # Zookeeper -RUN wget -q -O - http://www.us.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz | tar -xzf - -C /usr/local -RUN cp /usr/local/zookeeper-3.4.6/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.6/conf/zoo.cfg -RUN ln -s /usr/local/zookeeper-3.4.6 /usr/local/zookeeper +RUN wget -q -O - http://www.us.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz | tar -xzf - -C /usr/local \ + && cp /usr/local/zookeeper-3.4.6/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.6/conf/zoo.cfg \ + && ln -s /usr/local/zookeeper-3.4.6 /usr/local/zookeeper # Kafka -RUN wget -q -O - http://www.us.apache.org/dist/kafka/0.8.2.0/kafka_2.10-0.8.2.0.tgz | tar -xzf - -C /usr/local -RUN ln -s /usr/local/kafka_2.10-0.8.2.0 /usr/local/kafka -# unless advertised.host.name is set to docker ip, publishing data fails -ADD docker_ip docker_ip -RUN perl -pi -e "s/#advertised.port=.*/advertised.port=9092/; s/#advertised.host.*/advertised.host.name=$(cat docker_ip)/" /usr/local/kafka/config/server.properties - -# git -RUN apt-get install -y git +RUN wget -q -O - http://www.us.apache.org/dist/kafka/0.8.2.0/kafka_2.10-0.8.2.0.tgz | tar -xzf - -C /usr/local \ + && ln -s /usr/local/kafka_2.10-0.8.2.0 /usr/local/kafka # Druid system user -RUN adduser --system --group --no-create-home druid -RUN mkdir -p /var/lib/druid -RUN chown druid:druid /var/lib/druid +RUN adduser --system --group --no-create-home druid \ + && mkdir -p /var/lib/druid \ + && chown druid:druid /var/lib/druid -# Add druid jars -ADD lib/* /usr/local/druid/lib/ +# clean up time +RUN apt-get clean \ + && rm -rf /tmp/* \ + /var/tmp/* \ + /var/lib/apt/lists \ + /root/.m2 -WORKDIR / # Setup metadata store -RUN /etc/init.d/mysql start && echo "GRANT ALL ON druid.* TO 'druid'@'%' IDENTIFIED BY 'diurd'; CREATE database druid DEFAULT CHARACTER SET utf8;" | mysql -u root && /etc/init.d/mysql stop +RUN /etc/init.d/mysql start \ + && echo "GRANT ALL ON druid.* TO 'druid'@'%' IDENTIFIED BY 'diurd'; CREATE database druid DEFAULT CHARACTER SET utf8;" | mysql -u root \ + && /etc/init.d/mysql stop + +# Add Druid jars +ADD lib/* /usr/local/druid/lib/ # Add sample data -RUN /etc/init.d/mysql start && java -Ddruid.metadata.storage.type=mysql -cp "/usr/local/druid/lib/*" io.druid.cli.Main tools metadata-init --connectURI="jdbc:mysql://localhost:3306/druid" --user=druid --password=diurd && /etc/init.d/mysql stop +RUN /etc/init.d/mysql start \ + && java -cp "/usr/local/druid/lib/*" -Ddruid.metadata.storage.type=mysql io.druid.cli.Main tools metadata-init --connectURI="jdbc:mysql://localhost:3306/druid" --user=druid --password=diurd \ + && /etc/init.d/mysql stop ADD sample-data.sql sample-data.sql -RUN /etc/init.d/mysql start && cat sample-data.sql | mysql -u root druid && /etc/init.d/mysql stop +RUN /etc/init.d/mysql start \ + && cat sample-data.sql | mysql -u root druid \ + && /etc/init.d/mysql stop # Setup supervisord ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf -# Clean up -RUN apt-get clean && rm -rf /tmp/* /var/tmp/* +# unless advertised.host.name is set to docker host ip, publishing data fails +# run this last to avoid rebuilding the image every time the ip changes +ADD docker_ip docker_ip +RUN perl -pi -e "s/#advertised.port=.*/advertised.port=9092/; s/#advertised.host.*/advertised.host.name=$(cat docker_ip)/" /usr/local/kafka/config/server.properties # Expose ports: # - 8081: HTTP (coordinator) @@ -73,5 +81,6 @@ EXPOSE 8091 EXPOSE 3306 EXPOSE 2181 2888 3888 EXPOSE 8100 8101 8102 8103 8104 + WORKDIR /var/lib/druid ENTRYPOINT export HOST_IP="$(resolveip -s $HOSTNAME)" && exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf