Skip to content

Commit 155958d

Browse files
committed
Add "--no-overwrite-dir" to "tar" invocation for running as an arbitrary user
This fixes "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted" (which we get currently).
1 parent 90d235a commit 155958d

File tree

13 files changed

+195
-65
lines changed

13 files changed

+195
-65
lines changed

docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php5.6/apache/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php5.6/fpm-alpine/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php5.6/fpm/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.0/apache/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.0/fpm-alpine/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.0/fpm/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.1/apache/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.1/fpm-alpine/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.1/fpm/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.2/apache/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.2/fpm-alpine/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

php7.2/fpm/docker-entrypoint.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,21 @@ if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
4545
if [ -n "$(ls -A)" ]; then
4646
echo >&2 "WARNING: $PWD is not empty! (copying anyhow)"
4747
fi
48-
tar --create \
49-
--file - \
50-
--directory /usr/src/wordpress \
51-
--owner "$user" --group "$group" \
52-
. | tar --extract --file -
48+
sourceTarArgs=(
49+
--create
50+
--file -
51+
--directory /usr/src/wordpress
52+
--owner "$user" --group "$group"
53+
)
54+
targetTarArgs=(
55+
--extract
56+
--file -
57+
)
58+
if [ "$user" != '0' ]; then
59+
# avoid "tar: .: Cannot utime: Operation not permitted" and "tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted"
60+
targetTarArgs+=( --no-overwrite-dir )
61+
fi
62+
tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"
5363
echo >&2 "Complete! WordPress has been successfully copied to $PWD"
5464
if [ ! -e .htaccess ]; then
5565
# NOTE: The "Indexes" option is disabled in the php:apache base image

0 commit comments

Comments
 (0)