Files
2026-04-23 09:53:10 -03:00

49 lines
1.9 KiB
Docker

ARG WP_VERSION=6
ARG PHP_VERSION=8.3
# set wordpress and PHP versions
FROM wordpress:${WP_VERSION}-php${PHP_VERSION}-fpm-alpine
# clean core from default themes and plugins
RUN rm -rf /usr/src/wordpress/wp-content/themes/* && rm -rf /usr/src/wordpress/wp-content/plugins/*
# install system dependencies
RUN apk add --no-cache msmtp mysql-client;
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
chmod +x wp-cli.phar && \
mv wp-cli.phar /usr/local/bin/wp
# install composer dependencies
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY composer.json composer.lock ./
RUN composer install \
--no-dev \
--no-interaction \
--optimize-autoloader \
--no-scripts
# modify docker entrypoint for running any .sh scripts found under /usr/local/bin/docker-entrypoint.d
# scripts will run as www-data if endedd with .unpriv.sh or as root elsewhere
RUN cp -avf /usr/local/bin/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.original && \
sed -i '/^[[:space:]]*exec "$@"[[:space:]]*/d' /usr/local/bin/docker-entrypoint.sh && \
cat << EOF >> /usr/local/bin/docker-entrypoint.sh
# Run entrypoint hooks
SH_PATH=$(which sh);
if [ -d /docker-entrypoint.d ]; then
for entrypoint in /docker-entrypoint.d/*.sh; do
order=\$(basename \${entrypoint} | grep -oE '^\d+');
script_user=\$(test -n "\$(basename \${entrypoint} | grep -oE '\-unpriv\.sh')" && echo \${UNPRIV_USER:-\$(stat -c %U /var/www/html)} || echo "root");
name=\$(basename \${entrypoint} | sed 's/\.sh//' | sed 's/\-unpriv//' | sed 's/^\d\+\-//')
printf "=== %s [#%d] ===\nrunning as '%s'\n\n" \$(echo \${name} | tr [:lower:] [:upper:]) \${order} \${script_user}
su \${script_user} -s \$(which sh) \$entrypoint;
done
fi
exec "\$@";
EOF
COPY docker/wordpress/scripts/docker-entrypoint.d/* /docker-entrypoint.d/
RUN chmod +x /docker-entrypoint.d/*.sh
# cleanup
RUN rm /usr/bin/composer