[ 
https://issues.apache.org/jira/browse/HDDS-1648?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arpit Agarwal updated HDDS-1648:
--------------------------------
    Fix Version/s: 0.5.0

> Reduce layers of Ozone docker image
> -----------------------------------
>
>                 Key: HDDS-1648
>                 URL: https://issues.apache.org/jira/browse/HDDS-1648
>             Project: Hadoop Distributed Data Store
>          Issue Type: Sub-task
>            Reporter: Eric Yang
>            Assignee: Elek, Marton
>            Priority: Major
>             Fix For: 0.5.0
>
>
> Docker image can be more lean if multiple steps are group together and run by 
> a shell script.  For example, all the install commands can be wrapped by a 
> setup shell script for Hadoop-runner.
> {code}
> #!/bin/bash
> rpm -Uvh 
> https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
> yum install -y sudo python2-pip wget nmap-ncat jq java-11-openjdk
> pip install robotframework
> wget -O /usr/local/bin/dumb-init 
> https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64
> chmod +x /usr/local/bin/dumb-init
> mkdir -p /etc/security/keytabs && chmod -R a+wr /etc/security/keytabs 
> wget -O /opt/byteman.jar 
> https://repo.maven.apache.org/maven2/org/jboss/byteman/byteman/4.0.4/byteman-4.0.4.jar
> chmod o+r /opt/byteman.jar
> mkdir -p /opt/profiler && \
>     cd /opt/profiler && \
>     curl -L 
> https://github.com/jvm-profiling-tools/async-profiler/releases/download/v1.5/async-profiler-1.5-linux-x64.tar.gz
>  | tar xvz
> yum install -y krb5-workstation
> mkdir -p /etc/hadoop && mkdir -p /var/log/hadoop && chmod 1777 /etc/hadoop && 
> chmod 1777 /var/log/hadoop
> {code}
> And Dockerfile is simplified to:
> {code}
> FROM centos
> ADD setup.sh /
> RUN /setup.sh
> ADD scripts /opt/
> ADD scripts/krb5.conf /etc/
> WORKDIR /opt/hadoop
> ENV HADOOP_LOG_DIR=/var/log/hadoop
> ENV HADOOP_CONF_DIR=/etc/hadoop
> ENTRYPOINT ["/usr/local/bin/dumb-init", "--", "/opt/starter.sh"]
> {code}
> This arrangement can drastically improve the rebuild performance of Docker 
> image.  The end result of the image is 150MB less than current hadoop-runner 
> image on Github.  The reduced intermediate layers shrinks the reference count 
> number to improve space usage.
> We can also have two scripts, one for install binaries, and another one for 
> configure the image.  This can even further reduce the build time, if the 
> third party binaries rarely changes.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to