From 6502140eeed1caa36e6abd63249d336ba663d4d7 Mon Sep 17 00:00:00 2001 From: Rusty Lynch Date: Wed, 5 Jun 2019 13:04:03 -0700 Subject: [PATCH] Minimize the httpd and cgit containers using os-core base. Convert httpd and cgit containers to utilize the minimal os-core container, using a multistage build technique to add additional Clear Linux content. Signed-off-by: Rusty Lynch --- cgit/Dockerfile | 24 ++++++++++++++++++++---- httpd/Dockerfile | 28 ++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/cgit/Dockerfile b/cgit/Dockerfile index e6f9a0e..6c97773 100644 --- a/cgit/Dockerfile +++ b/cgit/Dockerfile @@ -1,9 +1,25 @@ -FROM clearlinux/httpd +FROM clearlinux:latest AS builder -ARG swupd_args +# Move to latest Clear Linux release to ensure +# that the swupd command line arguments are +# correct RUN swupd update --no-boot-update $swupd_args -RUN swupd bundle-add sudo curl scm-server $swupd_args \ - && rm -rf /var/lib/swupd/* +# Grab os-release info from the minimal base image so +# that the new content matches the exact OS version +COPY --from=clearlinux/os-core:latest /usr/lib/os-release / + +# Install additional content in a target directory +# using the os version from the minimal base +RUN source /os-release && \ + mkdir /install_root \ + && swupd os-install -V ${VERSION_ID} \ + --path /install_root --statedir /swupd-state \ + --bundles=sudo,curl,scm-server --no-scripts \ + && rm -rf /install_root/var/lib/swupd/* + +FROM clearlinux/httpd:latest + +COPY --from=builder /install_root / COPY cgitrc /etc/cgitrc COPY httpd-cgit.conf /etc/httpd/conf.d/httpd-cgit.conf diff --git a/httpd/Dockerfile b/httpd/Dockerfile index 91be879..c89f589 100644 --- a/httpd/Dockerfile +++ b/httpd/Dockerfile @@ -1,11 +1,27 @@ -FROM clearlinux:latest +FROM clearlinux:latest AS builder + +# Move to latest Clear Linux release to ensure +# that the swupd command line arguments are +# correct +RUN swupd update --no-boot-update $swupd_args + +# Grab os-release info from the minimal base image so +# that the new content matches the exact OS version +COPY --from=clearlinux/os-core:latest /usr/lib/os-release / + +# Install additional content in a target directory +# using the os version from the minimal base +RUN source /os-release && \ + mkdir /install_root \ + && swupd os-install -V ${VERSION_ID} \ + --path /install_root --statedir /swupd-state \ + --bundles=httpd --no-scripts \ + && rm -rf /install_root/var/lib/swupd/* + +FROM clearlinux/os-core:latest MAINTAINER qi.zheng@intel.com -ARG swupd_args - -RUN swupd update --no-boot-update $swupd_args -RUN swupd bundle-add httpd $swupd_args \ - && rm -rf /var/lib/swupd/* +COPY --from=builder /install_root / #default configuration on /usr/share/defaults/httpd/httpd.conf #create folder for default DocumentRoot and LOG/PidFile path