From bb2c469018ad92749e0d9a3068099dd1b21accf3 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Mon, 1 Aug 2016 17:03:07 -0700 Subject: [PATCH] Convert explicit "export A=B" lines of Apache's envvars file into "${A:=B}" such that we can override them at runtime easily Before: ```sh unset HOME if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" else SUFFIX= fi export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data export APACHE_PID_FILE=/var/run/apache2/apache2$SUFFIX.pid export APACHE_RUN_DIR=/var/run/apache2$SUFFIX export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX export APACHE_LOG_DIR=/var/log/apache2$SUFFIX export LANG=C export LANG ``` After: ```sh unset HOME if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" else SUFFIX= fi : ${APACHE_RUN_USER:=www-data} export APACHE_RUN_USER : ${APACHE_RUN_GROUP:=www-data} export APACHE_RUN_GROUP : ${APACHE_PID_FILE:=/var/run/apache2/apache2$SUFFIX.pid} export APACHE_PID_FILE : ${APACHE_RUN_DIR:=/var/run/apache2$SUFFIX} export APACHE_RUN_DIR : ${APACHE_LOCK_DIR:=/var/lock/apache2$SUFFIX} export APACHE_LOCK_DIR : ${APACHE_LOG_DIR:=/var/log/apache2$SUFFIX} export APACHE_LOG_DIR : ${LANG:=C} export LANG export LANG ``` (minus comments) --- apache-Dockerfile-block-1 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apache-Dockerfile-block-1 b/apache-Dockerfile-block-1 index 5ca40243..f0a1699c 100644 --- a/apache-Dockerfile-block-1 +++ b/apache-Dockerfile-block-1 @@ -3,8 +3,17 @@ RUN apt-get update && apt-get install -y apache2-bin apache2.2-common --no-insta ENV APACHE_CONFDIR /etc/apache2 ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars -# setup directories and permissions RUN set -ex \ + \ +# generically convert lines like +# export APACHE_RUN_USER=www-data +# into +# : ${APACHE_RUN_USER:=www-data} +# export APACHE_RUN_USER +# so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") + && sed -r 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS" \ + \ +# setup directories and permissions && . "$APACHE_ENVVARS" \ && for dir in \ "$APACHE_LOCK_DIR" \