mirror of
https://github.com/N0rthernL1ghts/wordpress.git
synced 2025-12-10 13:52:40 +01:00
Initialize WordPress during build time
This commit is contained in:
67
rootfs/etc/cont-init.d/10-verify-wordpress
Executable file
67
rootfs/etc/cont-init.d/10-verify-wordpress
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
# Designed to replace original, overcomplicated entrypoint script from official wordpress docker repository
|
||||
# Why not use already available tools instead?!
|
||||
|
||||
# Register exit handler
|
||||
trap scriptExitHandler EXIT
|
||||
|
||||
function scriptExitHandler() {
|
||||
LAST_EXIT_CODE=$?
|
||||
if [ "${LAST_EXIT_CODE}" = "0" ]; then
|
||||
echo "> Script finished successfully"
|
||||
exit "${LAST_EXIT_CODE}"
|
||||
fi
|
||||
|
||||
echo "> Script finished with an error"
|
||||
exit "${LAST_EXIT_CODE}"
|
||||
}
|
||||
|
||||
# Applies patch for making WordPress updates impossible
|
||||
function disableUpdatesPatch() {
|
||||
DISABLE_WP_UPDATES="${ENFORCE_DISABLE_WP_UPDATES:-true}"
|
||||
if [ "${DISABLE_WP_UPDATES}" != "false" ]; then
|
||||
echo "> Disabling WordPress updates..."
|
||||
patch /var/www/html/wp-admin/update-core.php </etc/wp-mods/wp-admin-update-core.patch
|
||||
echo "> Marking the patched file read-only..."
|
||||
chmod 0440 /var/www/html/wp-admin/update-core.php
|
||||
fi
|
||||
}
|
||||
|
||||
# Main function
|
||||
function main() {
|
||||
# Removes trailing zero if found
|
||||
# This is required due to inconsistencies between WodPress docker image versioning and wp-cli core download
|
||||
# If patch version is 0, it is not considered by wp-cli.
|
||||
WP_VERSION=$(echo "${WP_VERSION:?}" | sed --expression='s/.0$//g')
|
||||
|
||||
echo "> Verifying 'WordPress ${WP_VERSION}' installation..."
|
||||
WP_INSTALLED_VERSION="$(wp core version)"
|
||||
|
||||
set -e
|
||||
|
||||
if [ -z "${WP_INSTALLED_VERSION}" ]; then
|
||||
echo "> ERROR! WordPress installation does not seem to be present or valid. Continuing anyway..."
|
||||
return 0
|
||||
elif [ "${WP_INSTALLED_VERSION}" != "${WP_VERSION}" ]; then
|
||||
echo "> WARNING! WordPress version mismatch"
|
||||
echo " Expected version: ${WP_VERSION}"
|
||||
echo " Detected version: ${WP_INSTALLED_VERSION}"
|
||||
echo "> Seems like WordPress installation got updated outside image scope"
|
||||
echo " - This is dangerous as changes will not persist when container is recreated which might lead to inconsistencies between installation and the database."
|
||||
echo " - You should assume that recreating the container will render the website inoperable."
|
||||
echo " - Please make sure that you're running image: nlss/wordpress:${WP_VERSION}"
|
||||
return 0
|
||||
else
|
||||
echo "> Identified 'WordPress ${WP_VERSION}'"
|
||||
|
||||
# This will apply patch once and again only if container is recreated
|
||||
if [ ! -f "/var/www/patch-applied" ]; then
|
||||
disableUpdatesPatch
|
||||
touch "/var/www/patch-applied"
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
exit $?
|
||||
Reference in New Issue
Block a user