Skip to content

Commit 468a2ce

Browse files
authored
Reduce dockerfile layer count by fusing info RUN commands (#126)
Fuse a bunch of build info RUN commands to reduce the total number of image layers. No need to have several individual `RUN echo BLA` and we have to keep the number down to avoid "max depth exceeded" CI errors.
2 parents 760f513 + d24c9eb commit 468a2ce

File tree

2 files changed

+42
-40
lines changed

2 files changed

+42
-40
lines changed

Dockerfile.rocky8

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -281,25 +281,26 @@ ARG JUPYTER_SERVICES
281281
ARG CLOUD_SERVICES
282282
#ARG WITH_GIT
283283

284-
RUN echo "UID and GID: $UID $GID"
285-
RUN echo "Domains: $DOMAIN" "${PUBLIC_DOMAIN}" "${MIGCERT_DOMAIN}" \
284+
RUN echo "*** BEGIN Build variables ***" && \
285+
echo "UID and GID: $UID $GID" && \
286+
echo "Domains: $DOMAIN" "${PUBLIC_DOMAIN}" "${MIGCERT_DOMAIN}" \
286287
"${EXTCERT_DOMAIN}" "${MIGOID_DOMAIN}" "${EXTOID_DOMAIN}" \
287288
"${EXTOIDC_DOMAIN}" "${SID_DOMAIN}" "${IO_DOMAIN}" \
288289
"${OPENID_DOMAIN}" "${SFTP_DOMAIN}" "${FTPS_DOMAIN}" \
289-
"${WEBDAVS_DOMAIN}"
290-
RUN echo "Ports: " "${PUBLIC_HTTP_PORT} ${PUBLIC_HTTPS_PORT}" \
290+
"${WEBDAVS_DOMAIN}" && \
291+
echo "Ports: " "${PUBLIC_HTTP_PORT} ${PUBLIC_HTTPS_PORT}" \
291292
"${MIGOID_HTTPS_PORT} ${EXTOID_HTTPS_PORT} ${EXTOIDC_HTTPS_PORT}" \
292293
"${MIGCERT_HTTPS_PORT} ${EXTCERT_HTTPS_PORT}" \
293294
"${SID_HTTPS_PORT} ${SFTP_PORT} ${SFTP_SUBSYS_PORT}" \
294-
"${FTPS_CTRL_PORT} ${DAVS_PORT} ${OPENID_PORT}"
295-
#RUN echo "MiG svn repo and revision: $MIG_SVN_REPO $MIG_SVN_REV"
296-
#RUN echo "MiG git repo , branch and revision: $MIG_GIT_REPO $MIG_GIT_BRANCH $MIG_GIT_REV"
297-
#RUN echo "Emulate flavor: $EMULATE_FLAVOR"
298-
#RUN echo "Emulate FQDN: $EMULATE_FQDN"
299-
RUN echo "Enable python3 support: $WITH_PY3"
300-
#RUN echo "Designated jupyter services: $JUPYTER_SERVICES"
301-
#RUN echo "Designated cloud services: $CLOUD_SERVICES"
302-
#RUN echo "Enable git checkout: $WITH_GIT"
295+
"${FTPS_CTRL_PORT} ${DAVS_PORT} ${OPENID_PORT}" && \
296+
#echo "MiG svn repo and revision: $MIG_SVN_REPO $MIG_SVN_REV" && \
297+
echo "Enable git checkout & repo : $WITH_GIT $MIG_GIT_REPO" && \
298+
echo "MiG git branch & revision: $MIG_GIT_BRANCH $MIG_GIT_REV" && \
299+
echo "Emulate flavor & fqdn: $EMULATE_FLAVOR $EMULATE_FQDN" && \
300+
echo "Enable python3 support: $WITH_PY3" && \
301+
#echo "Designated jupyter services: $JUPYTER_SERVICES" && \
302+
#echo "Designated cloud services: $CLOUD_SERVICES" && \
303+
echo "*** END Build variables ***"
303304

304305
#------------------------- next stage -----------------------------#
305306
FROM --platform=linux/$ARCH init AS base
@@ -506,8 +507,8 @@ RUN pip2 install --no-cache-dir mod_wsgi && \
506507
# && rm -fr /var/cache/dnf
507508

508509
# Build mod_auth_openid from source if requested - mainly for rocky8+ or self-signed hack
509-
RUN echo "BUILD_MOD_AUTH_OPENID: $BUILD_MOD_AUTH_OPENID"
510-
RUN echo "ENABLE_SELF_SIGNED_CERTS: $ENABLE_SELF_SIGNED_CERTS"
510+
RUN echo "BUILD_MOD_AUTH_OPENID: $BUILD_MOD_AUTH_OPENID" && \
511+
echo "ENABLE_SELF_SIGNED_CERTS: $ENABLE_SELF_SIGNED_CERTS"
511512
RUN if [ "$BUILD_MOD_AUTH_OPENID" = "True" -o "$ENABLE_SELF_SIGNED_CERTS" = "True" ]; then \
512513
echo "building mod_auth_openid from centos7 source rpm" \
513514
&& dnf update -y \
@@ -1221,12 +1222,12 @@ RUN if [ "${PREFER_PYTHON3}" = "True" ]; then \
12211222

12221223
WORKDIR $MIG_ROOT/mig/install
12231224

1224-
RUN echo "Designated jupyter services: ${JUPYTER_SERVICES}"
1225-
RUN echo "Designated jupyter services proxy enable https: ${JUPYTER_SERVICES_ENABLE_PROXY_HTTPS}"
1226-
RUN echo "Designated jupyter services proxy config: ${JUPYTER_SERVICES_PROXY_CONFIG}"
1227-
RUN echo "Designated jupyter services descriptions: ${JUPYTER_SERVICES_DESC}"
1228-
RUN echo "Designated cloud services: ${CLOUD_SERVICES}"
1229-
RUN echo "Designated cloud services descriptions: ${CLOUD_SERVICES_DESC}"
1225+
RUN echo "Designated jupyter services: ${JUPYTER_SERVICES}" && \
1226+
echo "Designated jupyter services proxy enable https: ${JUPYTER_SERVICES_ENABLE_PROXY_HTTPS}" && \
1227+
echo "Designated jupyter services proxy config: ${JUPYTER_SERVICES_PROXY_CONFIG}" && \
1228+
echo "Designated jupyter services descriptions: ${JUPYTER_SERVICES_DESC}" && \
1229+
echo "Designated cloud services: ${CLOUD_SERVICES}" && \
1230+
echo "Designated cloud services descriptions: ${CLOUD_SERVICES_DESC}"
12301231

12311232
# TODO: do we still need the ~/.local/ wrapper now that update-alternatives run?
12321233
RUN mkdir -p ${MIG_ROOT}/.local/bin; \

Dockerfile.rocky9

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -281,25 +281,26 @@ ARG JUPYTER_SERVICES
281281
ARG CLOUD_SERVICES
282282
#ARG WITH_GIT
283283

284-
RUN echo "UID and GID: $UID $GID"
285-
RUN echo "Domains: $DOMAIN" "${PUBLIC_DOMAIN}" "${MIGCERT_DOMAIN}" \
284+
RUN echo "*** BEGIN Build variables ***" && \
285+
echo "UID and GID: $UID $GID" && \
286+
echo "Domains: $DOMAIN" "${PUBLIC_DOMAIN}" "${MIGCERT_DOMAIN}" \
286287
"${EXTCERT_DOMAIN}" "${MIGOID_DOMAIN}" "${EXTOID_DOMAIN}" \
287288
"${EXTOIDC_DOMAIN}" "${SID_DOMAIN}" "${IO_DOMAIN}" \
288289
"${OPENID_DOMAIN}" "${SFTP_DOMAIN}" "${FTPS_DOMAIN}" \
289-
"${WEBDAVS_DOMAIN}"
290-
RUN echo "Ports: " "${PUBLIC_HTTP_PORT} ${PUBLIC_HTTPS_PORT}" \
290+
"${WEBDAVS_DOMAIN}" && \
291+
echo "Ports: " "${PUBLIC_HTTP_PORT} ${PUBLIC_HTTPS_PORT}" \
291292
"${MIGOID_HTTPS_PORT} ${EXTOID_HTTPS_PORT} ${EXTOIDC_HTTPS_PORT}" \
292293
"${MIGCERT_HTTPS_PORT} ${EXTCERT_HTTPS_PORT}" \
293294
"${SID_HTTPS_PORT} ${SFTP_PORT} ${SFTP_SUBSYS_PORT}" \
294-
"${FTPS_CTRL_PORT} ${DAVS_PORT} ${OPENID_PORT}"
295-
#RUN echo "MiG svn repo and revision: $MIG_SVN_REPO $MIG_SVN_REV"
296-
#RUN echo "MiG git repo , branch and revision: $MIG_GIT_REPO $MIG_GIT_BRANCH $MIG_GIT_REV"
297-
#RUN echo "Emulate flavor: $EMULATE_FLAVOR"
298-
#RUN echo "Emulate FQDN: $EMULATE_FQDN"
299-
RUN echo "Enable python3 support: $WITH_PY3"
300-
#RUN echo "Designated jupyter services: $JUPYTER_SERVICES"
301-
#RUN echo "Designated cloud services: $CLOUD_SERVICES"
302-
#RUN echo "Enable git checkout: $WITH_GIT"
295+
"${FTPS_CTRL_PORT} ${DAVS_PORT} ${OPENID_PORT}" && \
296+
#echo "MiG svn repo and revision: $MIG_SVN_REPO $MIG_SVN_REV" && \
297+
echo "Enable git checkout & repo : $WITH_GIT $MIG_GIT_REPO" && \
298+
echo "MiG git branch & revision: $MIG_GIT_BRANCH $MIG_GIT_REV" && \
299+
echo "Emulate flavor & fqdn: $EMULATE_FLAVOR $EMULATE_FQDN" && \
300+
echo "Enable python3 support: $WITH_PY3" && \
301+
#echo "Designated jupyter services: $JUPYTER_SERVICES" && \
302+
#echo "Designated cloud services: $CLOUD_SERVICES" && \
303+
echo "*** END Build variables ***"
303304

304305
#------------------------- next stage -----------------------------#
305306
FROM --platform=linux/$ARCH init AS base
@@ -1115,12 +1116,12 @@ RUN echo "PATH=$HOME/.local/bin:${PATH}" >> ~/.bash_profile \
11151116

11161117
WORKDIR $MIG_ROOT/mig/install
11171118

1118-
RUN echo "Designated jupyter services: ${JUPYTER_SERVICES}"
1119-
RUN echo "Designated jupyter services proxy enable https: ${JUPYTER_SERVICES_ENABLE_PROXY_HTTPS}"
1120-
RUN echo "Designated jupyter services proxy config: ${JUPYTER_SERVICES_PROXY_CONFIG}"
1121-
RUN echo "Designated jupyter services descriptions: ${JUPYTER_SERVICES_DESC}"
1122-
RUN echo "Designated cloud services: ${CLOUD_SERVICES}"
1123-
RUN echo "Designated cloud services descriptions: ${CLOUD_SERVICES_DESC}"
1119+
RUN echo "Designated jupyter services: ${JUPYTER_SERVICES}" && \
1120+
echo "Designated jupyter services proxy enable https: ${JUPYTER_SERVICES_ENABLE_PROXY_HTTPS}" && \
1121+
echo "Designated jupyter services proxy config: ${JUPYTER_SERVICES_PROXY_CONFIG}" && \
1122+
echo "Designated jupyter services descriptions: ${JUPYTER_SERVICES_DESC}" && \
1123+
echo "Designated cloud services: ${CLOUD_SERVICES}" && \
1124+
echo "Designated cloud services descriptions: ${CLOUD_SERVICES_DESC}"
11241125

11251126
RUN mkdir -p ${MIG_ROOT}/.local/bin; \
11261127
if [ "${PREFER_PYTHON3}" = "True" ]; then \

0 commit comments

Comments
 (0)