mirror of
https://github.com/misterunknown/ifm.git
synced 2025-08-12 11:04:01 +02:00
Fix broken Dockerfile and docker-startup.sh for correct user and group usage
Signed-off-by: Marco Dickert <marco@misterunknown.de>
This commit is contained in:
@@ -14,6 +14,13 @@ RUN apk add --no-cache libbz2 libzip libcap sudo && \
|
|||||||
# allow php binary to bind ports <1000, even if $USER != root
|
# allow php binary to bind ports <1000, even if $USER != root
|
||||||
RUN /usr/sbin/setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/php
|
RUN /usr/sbin/setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/php
|
||||||
|
|
||||||
|
# remove unnecessary users
|
||||||
|
RUN deluser xfs && \
|
||||||
|
deluser www-data
|
||||||
|
|
||||||
|
# sudo: workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1773148
|
||||||
|
RUN echo "Set disable_coredump false" > /etc/sudo.conf
|
||||||
|
|
||||||
# prepare files
|
# prepare files
|
||||||
RUN rm -rf /var/www/html && \
|
RUN rm -rf /var/www/html && \
|
||||||
mkdir -p /usr/local/share/webapps/ifm && \
|
mkdir -p /usr/local/share/webapps/ifm && \
|
||||||
|
@@ -2,25 +2,34 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [ ! -z $IFM_DOCKER_UID ]; then
|
if [ ! -z $IFM_DOCKER_UID ]; then
|
||||||
|
# check if UID/GID are numeric
|
||||||
|
if ! echo "$IFM_DOCKER_UID$IFM_DOCKER_GID" | egrep "^[0-9]+$" >/dev/null 2>&1; then
|
||||||
|
echo "FATAL: IFM_DOCKER_UID or IFM_DOCKER_GID are not numeric (UID: $IFM_DOCKER_UID, GID: $IFM_DOCKER_GID)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get GID if not set
|
||||||
if [ -z $IFM_DOCKER_GID ]; then
|
if [ -z $IFM_DOCKER_GID ]; then
|
||||||
export IFM_DOCKER_GID=$IFM_DOCKER_UID
|
export IFM_DOCKER_GID=$IFM_DOCKER_UID
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# delete user if already exists
|
||||||
if getent passwd $IFM_DOCKER_UID >/dev/null 2>&1; then
|
if getent passwd $IFM_DOCKER_UID >/dev/null 2>&1; then
|
||||||
deluser $(getent passwd $IFM_DOCKER_UID | sed "s/:.*//")
|
deluser $(getent passwd $IFM_DOCKER_UID | sed "s/:.*//")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# check if group already exists
|
||||||
if ! getent group $IFM_DOCKER_GID >/dev/null 2>&1; then
|
if ! getent group $IFM_DOCKER_GID >/dev/null 2>&1; then
|
||||||
addgroup -g $IFM_DOCKER_GID -S ifm
|
addgroup -g $IFM_DOCKER_GID -S www-data
|
||||||
REAL_GROUP=ifm
|
REAL_GROUP=www-data
|
||||||
else
|
else
|
||||||
REAL_GROUP=$(getent group $IFM_DOCKER_GID | sed "s/:.*//")
|
REAL_GROUP=$(getent group $IFM_DOCKER_GID | sed "s/:.*//")
|
||||||
fi
|
fi
|
||||||
adduser -u $IFM_DOCKER_UID -HDG $REAL_GROUP ifm
|
|
||||||
sudo -E -u ifm -c "php -S 0:80 -t /usr/local/share/webapps/ifm"
|
adduser -u $IFM_DOCKER_UID -SHDG $REAL_GROUP www-data
|
||||||
else
|
else
|
||||||
deluser xfs
|
|
||||||
deluser www-data
|
|
||||||
addgroup -g 33 -S www-data
|
addgroup -g 33 -S www-data
|
||||||
adduser -SHD -u 33 -G www-data www-data
|
adduser -SHD -u 33 -G www-data www-data
|
||||||
sudo -E -u www-data php -S 0:80 -t /usr/local/share/webapps/ifm
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sudo -Eu www-data /usr/local/bin/php -S 0:80 -t /usr/local/share/webapps/ifm
|
||||||
|
Reference in New Issue
Block a user