From c0f25a2bf0712595e91830467f3db0086f438fa5 Mon Sep 17 00:00:00 2001
From: Mohamed Ashiq Liyazudeen <mliyazud@redhat.com>
Date: Thu, 18 May 2017 17:30:29 +0530
Subject: Cleaning up RUN in dockerfile

This reduces the image size as it reduces the number of intermediate layers.

Signed-off-by: Mohamed Ashiq Liyazudeen <mliyazud@redhat.com>
---
 CentOS/Dockerfile                                  | 62 +++++++---------------
 Fedora/Dockerfile                                  | 17 +++---
 gluster-client/Dockerfile                          |  9 ++--
 .../CentOS/docker-gluster-swift/Dockerfile         | 12 ++---
 4 files changed, 37 insertions(+), 63 deletions(-)

diff --git a/CentOS/Dockerfile b/CentOS/Dockerfile
index cb45898..db7a578 100644
--- a/CentOS/Dockerfile
+++ b/CentOS/Dockerfile
@@ -14,60 +14,38 @@ LABEL architecture="x86_64" \
       description="Gluster Image is based on CentOS Image which is a scalable network filesystem. Using common off-the-shelf hardware, you can create large, distributed storage solutions for media streaming, data analysis, and other data- and bandwidth-intensive tasks." \
       io.openshift.tags="gluster,glusterfs,glusterfs-centos"
 
-RUN yum --setopt=tsflags=nodocs -y update; yum install -y centos-release-gluster; yum clean all;
-
-RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
+RUN yum --setopt=tsflags=nodocs -y update; yum install -y centos-release-gluster; yum clean all; \
+(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
 rm -f /lib/systemd/system/multi-user.target.wants/*;\
 rm -f /etc/systemd/system/*.wants/*;\
 rm -f /lib/systemd/system/local-fs.target.wants/*; \
 rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
 rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
 rm -f /lib/systemd/system/basic.target.wants/*;\
-rm -f /lib/systemd/system/anaconda.target.wants/*;
-
-RUN yum --setopt=tsflags=nodocs -y install wget nfs-utils attr iputils iproute openssh-server openssh-clients ntp rsync tar cronie sudo xfsprogs glusterfs glusterfs-server glusterfs-geo-replication;yum clean all;
-
-RUN sed -i '/Defaults    requiretty/c\#Defaults    requiretty' /etc/sudoers
-
-# Changing the port of sshd to avoid conflicting with host sshd
-RUN sed -i '/Port 22/c\Port 2222' /etc/ssh/sshd_config
-
-# Fixing RPC port conflict issue
-RUN sed -i 's/Requires\=rpcbind\.service//g' /usr/lib/systemd/system/glusterd.service
-
-RUN sed -i 's/rpcbind\.service/gluster-setup\.service/g' /usr/lib/systemd/system/glusterd.service
-
-# Fix for the separate /var on host issue
-RUN sed -i 's/ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"/ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="systemd_end"/g' /usr/lib/udev/rules.d/99-systemd.rules
-
-# Backing up gluster config as it overlaps when bind mounting.
-RUN mkdir -p /etc/glusterfs_bkp /var/lib/glusterd_bkp /var/log/glusterfs_bkp;\
+rm -f /lib/systemd/system/anaconda.target.wants/*;\
+yum --setopt=tsflags=nodocs -y install wget nfs-utils attr iputils iproute openssh-server openssh-clients ntp rsync tar cronie sudo xfsprogs glusterfs glusterfs-server glusterfs-geo-replication;yum clean all; \
+sed -i '/Defaults    requiretty/c\#Defaults    requiretty' /etc/sudoers; \
+sed -i '/Port 22/c\Port 2222' /etc/ssh/sshd_config; \
+sed -i 's/Requires\=rpcbind\.service//g' /usr/lib/systemd/system/glusterd.service; \
+sed -i 's/rpcbind\.service/gluster-setup\.service/g' /usr/lib/systemd/system/glusterd.service; \
+sed -i 's/ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"/ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="systemd_end"/g' /usr/lib/udev/rules.d/99-systemd.rules; \
+mkdir -p /etc/glusterfs_bkp /var/lib/glusterd_bkp /var/log/glusterfs_bkp;\
 cp -r /etc/glusterfs/* /etc/glusterfs_bkp;\
 cp -r /var/lib/glusterd/* /var/lib/glusterd_bkp;\
-cp -r /var/log/glusterfs/* /var/log/glusterfs_bkp;
-
-# Configure LVM to create LVs and snapshots
-RUN sed -i.save -e "s#udev_sync = 1#udev_sync = 0#" \
-   -e "s#udev_rules = 1#udev_rules = 0#" \
-   -e "s#use_lvmetad = 1#use_lvmetad = 0#" /etc/lvm/lvm.conf
+cp -r /var/log/glusterfs/* /var/log/glusterfs_bkp; \
+sed -i.save -e "s#udev_sync = 1#udev_sync = 0#" -e "s#udev_rules = 1#udev_rules = 0#" -e "s#use_lvmetad = 1#use_lvmetad = 0#" /etc/lvm/lvm.conf;
 
-# Adding script to move the glusterfs config file to location
+VOLUME [ "/sys/fs/cgroup" ]
 ADD gluster-setup.service /etc/systemd/system/gluster-setup.service
-RUN chmod 644 /etc/systemd/system/gluster-setup.service
-
-# Adding script to move the glusterfs config file to location
 ADD gluster-setup.sh /usr/sbin/gluster-setup.sh
-RUN chmod 500 /usr/sbin/gluster-setup.sh
-
-#RUN echo 'root:password' | chpasswd
-VOLUME [ "/sys/fs/cgroup" ]
 
-RUN systemctl disable nfs-server.service
-# stops getty from consuming all the memory
-RUN systemctl mask getty.target
-RUN systemctl enable ntpd.service
-RUN systemctl enable glusterd.service
-RUN systemctl enable gluster-setup.service
+RUN chmod 644 /etc/systemd/system/gluster-setup.service; \
+chmod 500 /usr/sbin/gluster-setup.sh; \
+systemctl disable nfs-server.service; \
+systemctl mask getty.target; \
+systemctl enable ntpd.service; \
+systemctl enable glusterd.service; \
+systemctl enable gluster-setup.service;
 
 EXPOSE 2222 111 245 443 24007 2049 8080 6010 6011 6012 38465 38466 38468 38469 49152 49153 49154 49156 49157 49158 49159 49160 49161 49162
 
diff --git a/Fedora/Dockerfile b/Fedora/Dockerfile
index 164732a..fc3f722 100644
--- a/Fedora/Dockerfile
+++ b/Fedora/Dockerfile
@@ -15,9 +15,8 @@ LABEL architecture="x86_64" \
       io.openshift.tags="gluster,glusterfs,gluster-fedora"
 
 
-RUN yum -y update && yum clean all;
-
-RUN yum -y install systemd; yum clean all; \
+RUN yum -y update;\
+yum -y install systemd; \
 (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
 rm -f /lib/systemd/system/multi-user.target.wants/*;\
 rm -f /etc/systemd/system/*.wants/*;\
@@ -25,17 +24,15 @@ rm -f /lib/systemd/system/local-fs.target.wants/*; \
 rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
 rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
 rm -f /lib/systemd/system/basic.target.wants/*;\
-rm -f /lib/systemd/system/anaconda.target.wants/*;
-
-RUN yum --setopt=tsflags=nodocs -y install wget nfs-utils iputils iproute attr glusterfs glusterfs-server glusterfs-geo-replication openssh-server; yum clean all
+rm -f /lib/systemd/system/anaconda.target.wants/*; \
+yum --setopt=tsflags=nodocs -y install wget nfs-utils iputils iproute attr glusterfs glusterfs-server glusterfs-geo-replication openssh-server; yum clean all;\
+systemctl disable nfs-server.service;\
+systemctl enable rpcbind.service;\
+systemctl enable glusterd.service;
 
-RUN echo 'root:password' | chpasswd
 VOLUME [ "/sys/fs/cgroup" ]
 
 EXPOSE 22 111 245 443 24007 2049 8080 6010 6011 6012 38465 38466 38468 38469 49152 49153 49154 49156 49157 49158 49159 49160 49161 49162 49163
 
-RUN systemctl disable nfs-server.service
-RUN systemctl enable rpcbind.service
-RUN systemctl enable glusterd.service
 CMD ["/usr/sbin/init"]
 
diff --git a/gluster-client/Dockerfile b/gluster-client/Dockerfile
index 8621ef8..9f28b4e 100644
--- a/gluster-client/Dockerfile
+++ b/gluster-client/Dockerfile
@@ -14,10 +14,9 @@ LABEL architecture="x86_64" \
 
 ENV container docker
 
-RUN dnf --setopt=tsflags=nodocs -y update; dnf --setopt=tsflags=nodocs -y install wget nfs-utils attr iputils iproute; dnf clean all;
-
-RUN sed -i "s/LANG/\#LANG/g" /etc/locale.conf
-
-RUN dnf install -y glusterfs-fuse; dnf clean all;
+RUN dnf --setopt=tsflags=nodocs -y update; dnf --setopt=tsflags=nodocs -y install wget nfs-utils attr iputils iproute; \
+sed -i "s/LANG/\#LANG/g" /etc/locale.conf;\
+dnf install -y glusterfs-fuse;\
+dnf clean all;
 
 CMD ["/bin/bash"]
diff --git a/gluster-object/CentOS/docker-gluster-swift/Dockerfile b/gluster-object/CentOS/docker-gluster-swift/Dockerfile
index e83a46e..99280b5 100644
--- a/gluster-object/CentOS/docker-gluster-swift/Dockerfile
+++ b/gluster-object/CentOS/docker-gluster-swift/Dockerfile
@@ -70,12 +70,12 @@ EXPOSE 8080
 RUN echo 'root:password' | chpasswd
 VOLUME [ "/sys/fs/cgroup" ]
 
-RUN systemctl enable swift-gen-builders.service
-RUN systemctl enable memcached.service
-RUN systemctl enable swift-proxy.service
-RUN systemctl enable swift-account.service
-RUN systemctl enable swift-container.service
-RUN systemctl enable swift-object.service
+RUN systemctl enable swift-gen-builders.service;\
+systemctl enable memcached.service;\
+systemctl enable swift-proxy.service;\
+systemctl enable swift-account.service;\
+systemctl enable swift-container.service;\
+systemctl enable swift-object.service;
 
 ENTRYPOINT ["/usr/local/bin/update_gluster_vol.sh"]
 CMD ["/usr/sbin/init"]
-- 
cgit v1.2.3