mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2026-01-09 17:41:14 +00:00
REL-0.1 Initial Release
This commit is contained in:
71
Dockerfiles/base/Dockerfile-5.4
Normal file
71
Dockerfiles/base/Dockerfile-5.4
Normal file
@@ -0,0 +1,71 @@
|
||||
# Auto-generated via Ansible
|
||||
FROM php:5.4-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade
|
||||
###
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
|
||||
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
71
Dockerfiles/base/Dockerfile-5.5
Normal file
71
Dockerfiles/base/Dockerfile-5.5
Normal file
@@ -0,0 +1,71 @@
|
||||
# Auto-generated via Ansible
|
||||
FROM php:5.5-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.5 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.5-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade
|
||||
###
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
|
||||
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
71
Dockerfiles/base/Dockerfile-5.6
Normal file
71
Dockerfiles/base/Dockerfile-5.6
Normal file
@@ -0,0 +1,71 @@
|
||||
# Auto-generated via Ansible
|
||||
FROM php:5.6-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.6 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.6-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade
|
||||
###
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
|
||||
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
71
Dockerfiles/base/Dockerfile-7.0
Normal file
71
Dockerfiles/base/Dockerfile-7.0
Normal file
@@ -0,0 +1,71 @@
|
||||
# Auto-generated via Ansible
|
||||
FROM php:7.0-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.0 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.0-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade
|
||||
###
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
|
||||
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
71
Dockerfiles/base/Dockerfile-7.1
Normal file
71
Dockerfiles/base/Dockerfile-7.1
Normal file
@@ -0,0 +1,71 @@
|
||||
# Auto-generated via Ansible
|
||||
FROM php:7.1-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.1 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.1-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade
|
||||
###
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
|
||||
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
71
Dockerfiles/base/Dockerfile-7.2
Normal file
71
Dockerfiles/base/Dockerfile-7.2
Normal file
@@ -0,0 +1,71 @@
|
||||
# Auto-generated via Ansible
|
||||
FROM php:7.2-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.2-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade
|
||||
###
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
|
||||
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
140
Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh
Executable file
140
Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh
Executable file
@@ -0,0 +1,140 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Available global variables:
|
||||
# + MY_USER
|
||||
# + MY_GROUP
|
||||
# + DEBUG_LEVEL
|
||||
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
|
||||
############################################################
|
||||
# Functions
|
||||
############################################################
|
||||
|
||||
###
|
||||
### Log to stdout/stderr
|
||||
###
|
||||
log() {
|
||||
log_lvl="${1}"
|
||||
log_msg="${2}"
|
||||
|
||||
log_clr_ok="\033[0;32m"
|
||||
log_clr_info="\033[0;34m"
|
||||
log_clr_warn="\033[0;33m"
|
||||
log_clr_err="\033[0;31m"
|
||||
log_clr_rst="\033[0m"
|
||||
|
||||
if [ "${log_lvl}" = "ok" ]; then
|
||||
if [ "${DEBUG_LEVEL}" -gt "0" ]; then
|
||||
printf "${log_clr_ok}[OK] %s${log_clr_rst}\n" "${log_msg}"
|
||||
fi
|
||||
elif [ "${log_lvl}" = "info" ]; then
|
||||
if [ "${DEBUG_LEVEL}" -gt "0" ]; then
|
||||
printf "${log_clr_info}[INFO] %s${log_clr_rst}\n" "${log_msg}"
|
||||
fi
|
||||
elif [ "${log_lvl}" = "warn" ]; then
|
||||
printf "${log_clr_warn}[WARN] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr
|
||||
elif [ "${log_lvl}" = "err" ]; then
|
||||
printf "${log_clr_err}[ERR] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr
|
||||
else
|
||||
printf "${log_clr_err}[???] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr
|
||||
fi
|
||||
|
||||
unset -v log_lvl
|
||||
unset -v log_msg
|
||||
unset -v log_clr_ok
|
||||
unset -v log_clr_info
|
||||
unset -v log_clr_warn
|
||||
unset -v log_clr_err
|
||||
unset -v log_clr_rst
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Wrapper for run_run command
|
||||
###
|
||||
run() {
|
||||
run_cmd="${1}"
|
||||
|
||||
run_clr_red="\033[0;31m"
|
||||
run_clr_green="\033[0;32m"
|
||||
run_clr_reset="\033[0m"
|
||||
|
||||
if [ "${DEBUG_LEVEL}" -gt "1" ]; then
|
||||
printf "${run_clr_red}%s \$ ${run_clr_green}${run_cmd}${run_clr_reset}\n" "$( whoami )"
|
||||
fi
|
||||
/bin/sh -c "LANG=C LC_ALL=C ${run_cmd}"
|
||||
|
||||
unset -v run_cmd
|
||||
unset -v run_clr_red
|
||||
unset -v run_clr_green
|
||||
unset -v run_clr_reset
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Is argument an integer?
|
||||
###
|
||||
isint() {
|
||||
echo "${1}" | grep -Eq '^([0-9]|[1-9][0-9]*)$'
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Is env variable set?
|
||||
###
|
||||
env_set() {
|
||||
if set | grep "^${1}=" >/dev/null 2>&1; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Get env variable by name
|
||||
###
|
||||
env_get() {
|
||||
if ! env_set "${1}"; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
env_get_value="$( set | grep "^${1}=" | awk -F '=' '{for (i=2; i<NF; i++) printf $i "="; print $NF}' )"
|
||||
|
||||
# Remove surrounding quotes
|
||||
env_get_value="$( echo "${env_get_value}" | sed "s/^'//g" )"
|
||||
env_get_value="$( echo "${env_get_value}" | sed 's/^"//g' )"
|
||||
|
||||
env_get_value="$( echo "${env_get_value}" | sed "s/'$//g" )"
|
||||
env_get_value="$( echo "${env_get_value}" | sed 's/"$//g' )"
|
||||
|
||||
echo "${env_get_value}"
|
||||
unset -v env_get_value
|
||||
}
|
||||
|
||||
|
||||
|
||||
############################################################
|
||||
# Sanity Checks
|
||||
############################################################
|
||||
|
||||
if ! command -v grep >/dev/null 2>&1; then
|
||||
log "err" "grep not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v sed >/dev/null 2>&1; then
|
||||
log "err" "sed not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v awk >/dev/null 2>&1; then
|
||||
log "err" "awk not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v getent >/dev/null 2>&1; then
|
||||
log "err" "getent not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
22
Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh
Executable file
22
Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
|
||||
############################################################
|
||||
# Functions
|
||||
############################################################
|
||||
|
||||
###
|
||||
### Debug level
|
||||
###
|
||||
get_debug_level() {
|
||||
if ! env_set "${1}"; then
|
||||
# Return default specified value
|
||||
echo "${2}"
|
||||
else
|
||||
# Return env value
|
||||
env_get "${1}"
|
||||
fi
|
||||
}
|
||||
104
Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh
Executable file
104
Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh
Executable file
@@ -0,0 +1,104 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Available global variables:
|
||||
# + MY_USER
|
||||
# + MY_GROUP
|
||||
# + DEBUG_LEVEL
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
|
||||
############################################################
|
||||
# Functions
|
||||
############################################################
|
||||
|
||||
###
|
||||
### Change UID
|
||||
###
|
||||
set_uid() {
|
||||
uid_varname="${1}"
|
||||
|
||||
if ! env_set "${uid_varname}"; then
|
||||
log "info" "\$${uid_varname} not set. Keeping default uid for '${MY_USER}'."
|
||||
else
|
||||
uid_env_uid="$( env_get "${uid_varname}" )"
|
||||
|
||||
if ! isint "${uid_env_uid}"; then
|
||||
log "err" "\$${uid_varname} is not an integer: '${uid_env_uid}'"
|
||||
exit 1
|
||||
else
|
||||
if uid_getent_row="$( getent passwd "${uid_env_uid}" )"; then
|
||||
uid_getent_name="$( echo "${uid_getent_row}" | awk -F ':' '{print $1}' )"
|
||||
if [ "${uid_getent_name}" != "${MY_USER}" ]; then
|
||||
log "warn" "User with ${uid_env_uid} already exists: ${uid_getent_name}"
|
||||
log "info" "Changing UID of ${uid_getent_name} to 9999"
|
||||
run "usermod -u 9999 ${uid_getent_name}"
|
||||
fi
|
||||
fi
|
||||
log "info" "Changing user '${MY_USER}' uid to: ${uid_env_uid}"
|
||||
run "usermod -u ${uid_env_uid} ${MY_USER}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Fix homedir permissions
|
||||
run "chown -R ${MY_USER} /home/${MY_USER}"
|
||||
|
||||
unset -v uid_varname
|
||||
unset -v uid_env_uid
|
||||
unset -v uid_getent_row
|
||||
unset -v uid_getent_name
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Change GID
|
||||
###
|
||||
set_gid() {
|
||||
gid_varname="${1}"
|
||||
|
||||
if ! env_set "${gid_varname}"; then
|
||||
log "info" "\$${gid_varname} not set. Keeping default gid for '${MY_GROUP}'."
|
||||
else
|
||||
# Retrieve the value from env
|
||||
gid_env_gid="$( env_get "${gid_varname}" )"
|
||||
|
||||
if ! isint "${gid_env_gid}"; then
|
||||
log "err" "\$${gid_varname} is not an integer: '${gid_env_gid}'"
|
||||
exit 1
|
||||
else
|
||||
if gid_getent_row="$( getent group "${gid_env_gid}" )"; then
|
||||
gid_getent_name="$( echo "${gid_getent_row}" | awk -F ':' '{print $1}' )"
|
||||
if [ "${gid_getent_name}" != "${MY_GROUP}" ]; then
|
||||
log "warn" "Group with ${gid_env_gid} already exists: ${gid_getent_name}"
|
||||
log "info" "Changing GID of ${gid_getent_name} to 9999"
|
||||
run "groupmod -g 9999 ${gid_getent_name}"
|
||||
fi
|
||||
fi
|
||||
log "info" "Changing group '${MY_GROUP}' gid to: ${gid_env_gid}"
|
||||
run "groupmod -g ${gid_env_gid} ${MY_GROUP}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Fix homedir permissions
|
||||
run "chown -R :${MY_GROUP} /home/${MY_USER}"
|
||||
|
||||
unset -v gid_varname
|
||||
unset -v gid_env_gid
|
||||
unset -v gid_getent_row
|
||||
unset -v gid_getent_name
|
||||
}
|
||||
|
||||
|
||||
############################################################
|
||||
# Sanity Checks
|
||||
############################################################
|
||||
|
||||
if ! command -v usermod >/dev/null 2>&1; then
|
||||
log "err" "usermod not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v groupmod >/dev/null 2>&1; then
|
||||
log "err" "groupmod not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
51
Dockerfiles/base/data/docker-entrypoint.sh
Executable file
51
Dockerfiles/base/data/docker-entrypoint.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Available global variables:
|
||||
# + MY_USER
|
||||
# + MY_GROUP
|
||||
# + DEBUG_LEVEL
|
||||
|
||||
|
||||
###
|
||||
### Settings
|
||||
###
|
||||
set -e
|
||||
set -u
|
||||
|
||||
CONFIG_DIR="/docker-entrypoint.d"
|
||||
|
||||
|
||||
###
|
||||
### Source libs
|
||||
###
|
||||
init="$( find "${CONFIG_DIR}" -name '*.sh' -type f | sort -u )"
|
||||
for f in ${init}; do
|
||||
# shellcheck disable=SC1090
|
||||
. "${f}"
|
||||
done
|
||||
|
||||
|
||||
###
|
||||
### Set Debug level
|
||||
###
|
||||
DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )"
|
||||
log "info" "Debug level: ${DEBUG_LEVEL}"
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
## Entry Point
|
||||
#############################################################
|
||||
|
||||
###
|
||||
### Change uid/gid
|
||||
###
|
||||
set_uid "NEW_UID"
|
||||
set_gid "NEW_GID"
|
||||
|
||||
|
||||
###
|
||||
### Startup
|
||||
###
|
||||
log "info" "Starting $( php-fpm -v 2>&1 | head -1 )"
|
||||
exec /usr/local/sbin/php-fpm
|
||||
5
Dockerfiles/base/data/php-fpm.conf
Normal file
5
Dockerfiles/base/data/php-fpm.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
daemonize = no
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
24
Dockerfiles/base/data/php-fpm.d/devilbox.conf
Normal file
24
Dockerfiles/base/data/php-fpm.d/devilbox.conf
Normal file
@@ -0,0 +1,24 @@
|
||||
[www]
|
||||
|
||||
; User and Group
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Ensure worker stdout and stderr are sent to the main error log.
|
||||
catch_workers_output = yes
|
||||
|
||||
; Pool config
|
||||
pm = dynamic
|
||||
pm.max_children = 5
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 3
|
||||
Reference in New Issue
Block a user