METRON-1650 Packaging docker containers are too large (jameslamb via merrimanr) closes apache/metron#1091
Project: http://git-wip-us.apache.org/repos/asf/metron/repo Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/a1e25a4b Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/a1e25a4b Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/a1e25a4b Branch: refs/heads/feature/METRON-1554-pcap-query-panel Commit: a1e25a4bf618e544b2062bf7f7f25bec0029956a Parents: 4e1dd5d Author: jameslamb <[email protected]> Authored: Fri Jul 27 15:06:40 2018 -0500 Committer: rmerriman <[email protected]> Committed: Fri Jul 27 15:06:40 2018 -0500 ---------------------------------------------------------------------- .../packaging/docker/ansible-docker/Dockerfile | 118 ++++++++++++------- .../packaging/docker/deb-docker/Dockerfile | 23 ++-- .../packaging/docker/rpm-docker/Dockerfile | 46 ++++++-- 3 files changed, 120 insertions(+), 67 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metron/blob/a1e25a4b/metron-deployment/packaging/docker/ansible-docker/Dockerfile ---------------------------------------------------------------------- diff --git a/metron-deployment/packaging/docker/ansible-docker/Dockerfile b/metron-deployment/packaging/docker/ansible-docker/Dockerfile index ebf002a..df3aeb5 100644 --- a/metron-deployment/packaging/docker/ansible-docker/Dockerfile +++ b/metron-deployment/packaging/docker/ansible-docker/Dockerfile @@ -17,49 +17,81 @@ FROM centos:centos6.9 MAINTAINER Apache Metron -RUN yum install -y tar -RUN yum install -y wget -# base development tools required -RUN yum groupinstall -y "Development tools" -# newer cpp 11 support required for building node modules -RUN yum install -y centos-release-scl -RUN yum install -y devtoolset-4-gcc-c++ devtoolset-4-gcc -RUN yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel libffi-devel -# install python 2.7.11 but do not make it the default -RUN wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz -O /usr/src/Python-2.7.11.tgz -WORKDIR /usr/src -RUN tar xvf Python-2.7.11.tgz -WORKDIR /usr/src/Python-2.7.11 -RUN ./configure -RUN make altinstall -WORKDIR /usr/src -RUN wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.tar.gz -O /usr/src/setuptools-11.3.tar.gz -RUN tar xvf setuptools-11.3.tar.gz -WORKDIR /usr/src/setuptools-11.3 -RUN python2.7 setup.py install -RUN easy_install-2.7 pip -# install ansible and set the configuration var -RUN pip2.7 install ansible==2.0.0.2 -RUN pip2.7 install boto COPY ansible.cfg /root/ ENV ANSIBLE_CONFIG /root/ansible.cfg -# java -RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel -RUN yum install -y which -RUN yum install -y nss -WORKDIR /usr/src -# setup maven -RUN wget http://apache.cs.utah.edu/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz -RUN tar xzvf apache-maven-3.3.9-bin.tar.gz -RUN mv apache-maven-3.3.9 /opt/maven -RUN ln -s /opt/maven/bin/mvn /usr/bin/mvn -# install rpm tools required to build rpms -RUN yum -y install asciidoc rpm-build rpm2cpio tar unzip xmlto zip rpmlint make && yum clean all -# create a .bashrc for root, enabling the cpp 11 toolset -RUN touch /root/.bashrc \ - && cat '/opt/rh/devtoolset-4/enable' >> /root/.bashrc -# install node so that the node dependencies can be packaged into the RPMs -RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - -RUN yum -y install nodejs -WORKDIR /root +RUN yum install -y \ + tar \ + wget \ + # base development tools required \ + && yum groupinstall -y \ + "Development tools" \ + # Install Software Collections repo (needs to be done in separate command) \ + && yum install -y \ + centos-release-scl \ + # newer cpp 11 support required for building node modules \ + && yum install -y \ + devtoolset-4-gcc-c++ \ + devtoolset-4-gcc \ + zlib-dev \ + openssl-devel \ + sqlite-devel \ + bzip2-devel \ + libffi-devel \ + # install python 2.7.11 but do not make it the default \ + && wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz -O /usr/src/Python-2.7.11.tgz \ + && cd /usr/src \ + && tar xvf Python-2.7.11.tgz \ + && rm -rf Python-2.7.11.tgz \ + && cd /usr/src/Python-2.7.11 \ + && ./configure \ + && make altinstall \ + && cd /usr/src \ + && wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.tar.gz -O /usr/src/setuptools-11.3.tar.gz \ + && tar xvf setuptools-11.3.tar.gz \ + && rm setuptools-11.3.tar.gz \ + && cd /usr/src/setuptools-11.3 \ + && python2.7 setup.py install \ + && easy_install-2.7 pip \ + # install ansible and set the configuration var \ + && pip2.7 install \ + ansible==2.0.0.2 \ + boto \ + # java \ + && yum install -y \ + java-1.8.0-openjdk \ + java-1.8.0-openjdk-devel \ + which \ + nss \ + && cd /usr/src \ + # setup maven \ + && wget http://apache.cs.utah.edu/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz \ + && tar xzvf apache-maven-3.3.9-bin.tar.gz \ + && rm apache-maven-3.3.9-bin.tar.gz \ + && mv apache-maven-3.3.9 /opt/maven \ + && ln -s /opt/maven/bin/mvn /usr/bin/mvn \ + # install rpm tools required to build rpms \ + && yum install -y \ + asciidoc \ + rpm-build \ + rpm2cpio \ + tar \ + unzip \ + xmlto \ + zip \ + rpmlint \ + make \ + # create a .bashrc for root, enabling the cpp 11 toolset \ + && touch /root/.bashrc \ + && echo '/opt/rh/devtoolset-4/enable' >> /root/.bashrc \ + # install node so that the node dependencies can be packaged into the RPMs \ + && curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - \ + && yum install -y \ + nodejs \ + # Remove packages just needed for builds \ + && yum remove -y \ + wget \ + # Clean up yum caches \ + && yum clean all + +WORKDIR /root http://git-wip-us.apache.org/repos/asf/metron/blob/a1e25a4b/metron-deployment/packaging/docker/deb-docker/Dockerfile ---------------------------------------------------------------------- diff --git a/metron-deployment/packaging/docker/deb-docker/Dockerfile b/metron-deployment/packaging/docker/deb-docker/Dockerfile index 44203c6..5169efc 100644 --- a/metron-deployment/packaging/docker/deb-docker/Dockerfile +++ b/metron-deployment/packaging/docker/deb-docker/Dockerfile @@ -18,16 +18,17 @@ FROM ubuntu:trusty # install prerequisites -RUN apt-get update && apt-get install -y \ - build-essential \ - openjdk-7-jdk \ - wget \ - curl \ - dpkg-dev \ - gettext - -# install nodejs so that the node dependencies can be packaged into the DEBs -RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -RUN apt-get install -y nodejs +RUN apt-get update \ + && apt-get install -y \ + build-essential \ + openjdk-7-jdk \ + curl \ + dpkg-dev \ + gettext \ + # install nodejs so that the node dependencies can be packaged into the DEBs \ + && curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - \ + && apt-get install -y \ + nodejs \ + && apt-get clean WORKDIR /root http://git-wip-us.apache.org/repos/asf/metron/blob/a1e25a4b/metron-deployment/packaging/docker/rpm-docker/Dockerfile ---------------------------------------------------------------------- diff --git a/metron-deployment/packaging/docker/rpm-docker/Dockerfile b/metron-deployment/packaging/docker/rpm-docker/Dockerfile index a2dae8e..f151678 100644 --- a/metron-deployment/packaging/docker/rpm-docker/Dockerfile +++ b/metron-deployment/packaging/docker/rpm-docker/Dockerfile @@ -17,17 +17,37 @@ FROM centos:centos6 -RUN yum install -y tar -RUN yum install -y wget -RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel -WORKDIR /usr/src -RUN wget http://apache.cs.utah.edu/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz -RUN tar xzvf apache-maven-3.2.5-bin.tar.gz -RUN mv apache-maven-3.2.5 /opt/maven -RUN ln -s /opt/maven/bin/mvn /usr/bin/mvn -RUN yum -y install asciidoc rpm-build rpm2cpio tar unzip xmlto zip rpmlint && yum clean all -WORKDIR /root +RUN yum install -y \ + tar \ + wget \ + java-1.8.0-openjdk \ + java-1.8.0-openjdk-devel \ + && cd /usr/src \ + && wget http://apache.cs.utah.edu/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz \ + && tar xzvf apache-maven-3.2.5-bin.tar.gz \ + && rm apache-maven-3.2.5-bin.tar.gz \ + && mv apache-maven-3.2.5 /opt/maven \ + && ln -s /opt/maven/bin/mvn /usr/bin/mvn \ + && yum install -y \ + asciidoc \ + rpm-build \ + rpm2cpio \ + tar \ + unzip \ + xmlto \ + zip \ + rpmlint \ + # install node so that the node dependencies can be packaged into the RPMs \ + && cd /root \ + && curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - \ + && yum install -y \ + gcc-c++ \ + make \ + nodejs \ + # Remove packages just needed for builds \ + && yum remove -y \ + wget \ + # Clean up yum caches \ + && yum clean all -# install node so that the node dependencies can be packaged into the RPMs -RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - -RUN yum -y install gcc-c++ make nodejs +WORKDIR /root
