From c0f25a2bf0712595e91830467f3db0086f438fa5 Mon Sep 17 00:00:00 2001 From: Mohamed Ashiq Liyazudeen 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 --- 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.1