Update Fedora and CentOS docker images.

- Reduce image size by skipping weak package references.
- Consolidate and sort packages to install.
- Improve consistency between versions.
- Combine yum/dnf install and clean to avoid unwanted caching.
- Don't update existing packages from base image unnecessarily.
This commit is contained in:
Matt Clay 2016-06-14 16:15:32 -07:00
parent e35c0b5669
commit cabbafb650
4 changed files with 74 additions and 58 deletions

View file

@ -1,48 +1,49 @@
# Latest version of centos
FROM centos:centos6 FROM centos:centos6
RUN yum -y update; yum clean all;
RUN yum -y install \ RUN yum clean all && \
yum -y install epel-release && \
yum -y install \
acl \ acl \
asciidoc \ asciidoc \
bzip2 \ bzip2 \
epel-release \
file \ file \
gcc \ gcc \
git \ git \
make \ make \
mercurial \ mercurial \
mysql \ mysql \
mysql-server \
MySQL-python \ MySQL-python \
rpm-build \ mysql-server \
rubygems \
sed \
subversion \
sudo \
unzip \
openssh-clients \ openssh-clients \
openssh-server \ openssh-server \
which \
zip
RUN yum -y install \
PyYAML \
python-coverage \ python-coverage \
python-devel \ python-devel \
python-httplib2 \ python-httplib2 \
python-jinja2 \
python-keyczar \ python-keyczar \
python-mock \ python-mock \
python-nose \ python-nose \
python-paramiko \ python-paramiko \
python-pip \ python-pip \
python-setuptools \ python-setuptools \
python-virtualenv python-virtualenv \
RUN pip install --upgrade jinja2 PyYAML \
RUN rpm -e --nodeps python-crypto; pip install pycrypto rpm-build \
rubygems \
sed \
subversion \
sudo \
unzip \
which \
zip \
&& \
yum clean all
RUN rpm -e --nodeps python-crypto && pip install --upgrade jinja2 pycrypto
RUN /bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers RUN /bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers
RUN mkdir /etc/ansible/ RUN mkdir /etc/ansible/
RUN /bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts RUN /bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts
#VOLUME /sys/fs/cgroup /run /tmp VOLUME /sys/fs/cgroup /run /tmp
RUN ssh-keygen -q -t rsa1 -N '' -f /etc/ssh/ssh_host_key && \ RUN ssh-keygen -q -t rsa1 -N '' -f /etc/ssh/ssh_host_key && \
ssh-keygen -q -t dsa -N '' -f /etc/ssh/ssh_host_dsa_key && \ ssh-keygen -q -t dsa -N '' -f /etc/ssh/ssh_host_dsa_key && \
ssh-keygen -q -t rsa -N '' -f /etc/ssh/ssh_host_rsa_key && \ ssh-keygen -q -t rsa -N '' -f /etc/ssh/ssh_host_rsa_key && \

View file

@ -1,6 +1,5 @@
# Latest version of centos
FROM centos:centos7 FROM centos:centos7
RUN yum -y update; yum clean all; yum -y swap fakesystemd systemd
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ RUN (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 /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \ rm -f /etc/systemd/system/*.wants/*; \
@ -9,29 +8,23 @@ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*; \ rm -f /lib/systemd/system/basic.target.wants/*; \
rm -f /lib/systemd/system/anaconda.target.wants/*; rm -f /lib/systemd/system/anaconda.target.wants/*;
RUN yum -y install \
RUN yum clean all && \
yum -y install epel-release && \
yum -y install \
acl \ acl \
asciidoc \ asciidoc \
dbus-python \
bzip2 \ bzip2 \
epel-release \ dbus-python \
file \ file \
git \ git \
iproute \ iproute \
make \ make \
mercurial \
mariadb-server \ mariadb-server \
mercurial \
MySQL-python \ MySQL-python \
rpm-build \
rubygems \
subversion \
sudo \
unzip \
openssh-clients \ openssh-clients \
openssh-server \ openssh-server \
which
RUN yum -y install \
PyYAML \
python-coverage \ python-coverage \
python-httplib2 \ python-httplib2 \
python-jinja2 \ python-jinja2 \
@ -41,7 +34,18 @@ RUN yum -y install \
python-paramiko \ python-paramiko \
python-pip \ python-pip \
python-setuptools \ python-setuptools \
python-virtualenv python-virtualenv \
PyYAML \
rpm-build \
rubygems \
subversion \
sudo \
unzip \
which \
&& \
yum -y swap fakesystemd systemd && \
yum clean all
RUN /usr/bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers RUN /usr/bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers
RUN mkdir /etc/ansible/ RUN mkdir /etc/ansible/
RUN /usr/bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts RUN /usr/bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts

View file

@ -1,6 +1,5 @@
# Latest version of fedora rawhide
FROM fedora:rawhide FROM fedora:rawhide
RUN dnf -y update; dnf clean all
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ RUN (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 /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \ rm -f /etc/systemd/system/*.wants/*; \
@ -9,24 +8,27 @@ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*; \ rm -f /lib/systemd/system/basic.target.wants/*; \
rm -f /lib/systemd/system/anaconda.target.wants/*; rm -f /lib/systemd/system/anaconda.target.wants/*;
RUN dnf -y install \
RUN dnf clean all && \
dnf -y --setopt=install_weak_deps=false install \
acl \ acl \
asciidoc \ asciidoc \
dbus-python \
bzip2 \ bzip2 \
dbus-python \
file \ file \
findutils \ findutils \
git \ git \
glibc-locale-source \ glibc-locale-source \
iproute \ iproute \
make \ make \
mercurial \
mariadb-server \ mariadb-server \
mercurial \
MySQL-python \ MySQL-python \
openssh-clients \
openssh-server \
procps \ procps \
PyYAML \
python-coverage \
python2-dnf \ python2-dnf \
python-coverage \
python-httplib2 \ python-httplib2 \
python-jinja2 \ python-jinja2 \
python-keyczar \ python-keyczar \
@ -36,6 +38,7 @@ RUN dnf -y install \
python-pip \ python-pip \
python-setuptools \ python-setuptools \
python-virtualenv \ python-virtualenv \
PyYAML \
rpm-build \ rpm-build \
rubygems \ rubygems \
subversion \ subversion \
@ -43,10 +46,11 @@ RUN dnf -y install \
tar \ tar \
unzip \ unzip \
which \ which \
openssh-clients \
openssh-server \
yum \ yum \
zip zip \
&& \
dnf clean all
RUN localedef --quiet -c -i en_US -f UTF-8 en_US.UTF-8 RUN localedef --quiet -c -i en_US -f UTF-8 en_US.UTF-8
RUN /usr/bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers RUN /usr/bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers
RUN mkdir /etc/ansible/ RUN mkdir /etc/ansible/

View file

@ -1,6 +1,5 @@
# Latest version of fedora 23
FROM fedora:23 FROM fedora:23
RUN dnf -y update; dnf clean all
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ RUN (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 /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \ rm -f /etc/systemd/system/*.wants/*; \
@ -9,24 +8,26 @@ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*; \ rm -f /lib/systemd/system/basic.target.wants/*; \
rm -f /lib/systemd/system/anaconda.target.wants/*; rm -f /lib/systemd/system/anaconda.target.wants/*;
RUN dnf -y install \
RUN dnf clean all && \
dnf -y --setopt=install_weak_deps=false install \
acl \ acl \
asciidoc \ asciidoc \
dbus-python \
bzip2 \ bzip2 \
dbus-python \
file \ file \
findutils \ findutils \
glibc-common \
git \ git \
iproute \ iproute \
make \ make \
mercurial \
mariadb-server \ mariadb-server \
mercurial \
MySQL-python \ MySQL-python \
openssh-clients \
openssh-server \
procps \ procps \
PyYAML \
python-coverage \
python2-dnf \ python2-dnf \
python-coverage \
python-httplib2 \ python-httplib2 \
python-jinja2 \ python-jinja2 \
python-keyczar \ python-keyczar \
@ -36,6 +37,7 @@ RUN dnf -y install \
python-pip \ python-pip \
python-setuptools \ python-setuptools \
python-virtualenv \ python-virtualenv \
PyYAML \
rpm-build \ rpm-build \
rubygems \ rubygems \
subversion \ subversion \
@ -43,12 +45,17 @@ RUN dnf -y install \
tar \ tar \
unzip \ unzip \
which \ which \
openssh-clients \
openssh-server \
yum \ yum \
zip zip \
RUN localedef --quiet -f ISO-8859-1 -i pt_BR pt_BR && \
RUN localedef --quiet -f ISO-8859-1 -i es_MX es_MX dnf clean all
RUN dnf -y --setopt=install_weak_deps=false update glibc-common && \
localedef --quiet -f ISO-8859-1 -i pt_BR pt_BR && \
localedef --quiet -f ISO-8859-1 -i es_MX es_MX && \
dnf clean all
RUN localedef --quiet -c -i en_US -f UTF-8 en_US.UTF-8
RUN /usr/bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers RUN /usr/bin/sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers
RUN mkdir /etc/ansible/ RUN mkdir /etc/ansible/
RUN /usr/bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts RUN /usr/bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts