From 2b6cde397595d91a2c99e43f39263b1acf8b534a Mon Sep 17 00:00:00 2001 From: Julien Acroute Date: Mon, 8 Aug 2016 17:19:03 +0200 Subject: [PATCH 1/3] Change uid of www-data user before starting apache --- apache-Dockerfile-block-2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apache-Dockerfile-block-2 b/apache-Dockerfile-block-2 index 613378a197..af6a4e87d7 100644 --- a/apache-Dockerfile-block-2 +++ b/apache-Dockerfile-block-2 @@ -2,4 +2,5 @@ COPY apache2-foreground /usr/local/bin/ WORKDIR /var/www/html EXPOSE 80 -CMD ["apache2-foreground"] +ENTRYPOINT [ "sh", "-c", "usermod --non-unique --uid ${RUN_AS_UID:-33} www-data && chown -R www-data /run/apache2 /run/lock/apache2 /var/cache/apache2/mod_cache_disk /var/log/apache2 && exec apache2-foreground" ] + From c4dd2ec00b468c6c1893b5cc56f78f2ebd249714 Mon Sep 17 00:00:00 2001 From: Julien Acroute Date: Wed, 17 Aug 2016 11:07:46 +0200 Subject: [PATCH 2/3] Separate UID change in dedicated shell script --- apache-Dockerfile-block-2 | 7 +++++-- docker-entrypoint.d/00-update-uid | 12 ++++++++++++ docker-entrypoint.sh | 10 ++++++++++ update.sh | 3 +++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100755 docker-entrypoint.d/00-update-uid create mode 100755 docker-entrypoint.sh diff --git a/apache-Dockerfile-block-2 b/apache-Dockerfile-block-2 index af6a4e87d7..a75747db09 100644 --- a/apache-Dockerfile-block-2 +++ b/apache-Dockerfile-block-2 @@ -1,6 +1,9 @@ + +COPY docker-entrypoint.sh /docker-entrypoint.sh +COPY docker-entrypoint.d /docker-entrypoint.d + COPY apache2-foreground /usr/local/bin/ WORKDIR /var/www/html EXPOSE 80 -ENTRYPOINT [ "sh", "-c", "usermod --non-unique --uid ${RUN_AS_UID:-33} www-data && chown -R www-data /run/apache2 /run/lock/apache2 /var/cache/apache2/mod_cache_disk /var/log/apache2 && exec apache2-foreground" ] - +ENTRYPOINT ["/docker-entrypoint.sh", "apache2-foreground"] diff --git a/docker-entrypoint.d/00-update-uid b/docker-entrypoint.d/00-update-uid new file mode 100755 index 0000000000..c507afb0b6 --- /dev/null +++ b/docker-entrypoint.d/00-update-uid @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# current www-data UID +CURRENT_UID=`id -u www-data` +WANTED_UID=${RUN_AS_UID:-33} + +# check if UID need to be updated +if [ $CURRENT_UID -ne $WANTED_UID ]; then + echo "Updating www-data UID to $WANTED_UID" + usermod --non-unique --uid $WANTED_UID www-data + chown -R www-data /run/apache2 /run/lock/apache2 /var/cache/apache2/mod_cache_disk /var/log/apache2 +fi diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 0000000000..4c54157358 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +DIR=/docker-entrypoint.d + +if [[ -d "$DIR" ]] +then + /bin/run-parts --verbose "$DIR" +fi + +exec "$@" diff --git a/update.sh b/update.sh index 2b5eadb4f0..29281d2a5e 100755 --- a/update.sh +++ b/update.sh @@ -110,6 +110,9 @@ for version in "${versions[@]}"; do ia { ac++ } ia && ac == 1 { system("cat '$variant'-Dockerfile-block-" ab) } ' "$base" > "$version/$target/Dockerfile" + if [ $target == "apache" ]; then + cp -vr docker-entrypoint.sh docker-entrypoint.d "$version/$target/" + fi cp -v docker-php-ext-* "$version/$target/" cp -v docker-php-source "$version/$target/" dockerfiles+=( "$version/$target/Dockerfile" ) From 3d9de66f446c801ad6a283e8a1da68c862311897 Mon Sep 17 00:00:00 2001 From: Julien Acroute Date: Wed, 17 Aug 2016 11:23:10 +0200 Subject: [PATCH 3/3] Move apache2-foreground command from ENTRYPOINT to CMD --- apache-Dockerfile-block-2 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apache-Dockerfile-block-2 b/apache-Dockerfile-block-2 index a75747db09..380763cc59 100644 --- a/apache-Dockerfile-block-2 +++ b/apache-Dockerfile-block-2 @@ -6,4 +6,7 @@ COPY apache2-foreground /usr/local/bin/ WORKDIR /var/www/html EXPOSE 80 -ENTRYPOINT ["/docker-entrypoint.sh", "apache2-foreground"] + +ENTRYPOINT [ "/docker-entrypoint.sh" ] + +CMD [ "apache2-foreground" ]