#!/usr/bin/env bash set -Eeuo pipefail # 환경변수 PUID가 설정되어 있으면 www-data 사용자의 UID를 변경 if [[ -n "${PUID}" ]] then usermod -u ${PUID} www-data fi # 환경변수 PGID가 설정되어 있으면 www-data 그룹의 GID를 변경 if [[ -n "${PGID}" ]] then groupmod -g ${PGID} www-data fi # 첫 번째 인자가 apache2* 또는 php-fpm이면 if [[ "$1" == apache2* ]] || [ "$1" = 'php-fpm' ]; then uid="$(id -u)" gid="$(id -g)" # 현재 UID가 root이면 if [ "$uid" = '0' ]; then case "$1" in apache2*) user="${APACHE_RUN_USER:-www-data}" group="${APACHE_RUN_GROUP:-www-data}" # Apache에서 '#1000' 형식 UID/GID에서 '#' 제거 pound='#' user="${user#$pound}" group="${group#$pound}" ;; *) # php-fpm인 경우 기본 사용자 www-data user='www-data' group='www-data' ;; esac else # root이 아니면 현재 uid/gid 그대로 사용 user="$uid" group="$gid" fi fi # 마지막으로 인자로 받은 명령어 실행 (ex: apache2-foreground) exec "$@"