[bitnami/wordpress] Release 7.0.0-debian-12-r5 (#94447)

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>
This commit is contained in:
Bitnami Bot 2026-06-08 18:54:50 +02:00 committed by GitHub
parent 2b050d2eec
commit c3a3900a2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 86 additions and 39 deletions

View File

@ -7,7 +7,7 @@ ARG DOWNLOADS_URL="downloads.bitnami.com/files/stacksmith"
ARG TARGETARCH
LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \
org.opencontainers.image.created="2026-06-02T11:21:17Z" \
org.opencontainers.image.created="2026-06-08T16:40:20Z" \
org.opencontainers.image.description="Application packaged by Broadcom, Inc." \
org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/wordpress/README.md" \
org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/wordpress" \
@ -28,12 +28,12 @@ RUN --mount=type=secret,id=downloads_url,env=SECRET_DOWNLOADS_URL \
DOWNLOADS_URL=${SECRET_DOWNLOADS_URL:-${DOWNLOADS_URL}} ; \
mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ || exit 1 ; \
COMPONENTS=( \
"render-template-1.0.9-165-linux-${OS_ARCH}-debian-12" \
"php-8.4.21-5-linux-${OS_ARCH}-debian-12" \
"apache-2.4.67-1-linux-${OS_ARCH}-debian-12" \
"render-template-1.0.9-166-linux-${OS_ARCH}-debian-12" \
"php-8.4.22-1-linux-${OS_ARCH}-debian-12" \
"apache-2.4.68-0-linux-${OS_ARCH}-debian-12" \
"mysql-client-12.3.2-0-linux-${OS_ARCH}-debian-12" \
"postgresql-lib-18.4.0-0-linux-${OS_ARCH}-debian-12" \
"libphp-8.4.21-0-linux-${OS_ARCH}-debian-12" \
"libphp-8.4.22-1-linux-${OS_ARCH}-debian-12" \
"wordpress-7.0.0-0-linux-${OS_ARCH}-debian-12" \
) ; \
for COMPONENT in "${COMPONENTS[@]}"; do \
@ -61,7 +61,7 @@ ENV APACHE_HTTPS_PORT_NUMBER="" \
APACHE_HTTP_PORT_NUMBER="" \
APP_VERSION="7.0.0" \
BITNAMI_APP_NAME="wordpress" \
IMAGE_REVISION="4" \
IMAGE_REVISION="5" \
LD_LIBRARY_PATH="/opt/bitnami/postgresql/lib" \
PATH="/opt/bitnami/wp-cli/bin:/opt/bitnami/common/bin:/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/apache/bin:/opt/bitnami/mysql/bin:$PATH"

View File

@ -1 +0,0 @@
cc9ec4ed758ad8502b7057aa3527cc003261038cd75f0a5fa8aa885bfea46ff1 apache-2.4.67-1-linux-amd64-debian-12.tar.gz

View File

@ -1 +0,0 @@
01aa3fe1d54b7ecde2e19098de2fe93205c1c105ff31391f98f5afc3274aa99e apache-2.4.67-1-linux-arm64-debian-12.tar.gz

View File

@ -0,0 +1 @@
98a1e56f30bbbd9d51655a18f0854c7180ff0ad0ce8b44d2eaeefa12844f9f02 apache-2.4.68-0-linux-amd64-debian-12.tar.gz

View File

@ -0,0 +1 @@
1ad93386933cac367d4f6380344996c1a774e817caa8463b298d102eef2bf243 apache-2.4.68-0-linux-arm64-debian-12.tar.gz

View File

@ -1 +0,0 @@
1c0534f33b21dc6b1754967226d002345b0461f94601a55006b91441136c240f libphp-8.4.21-0-linux-amd64-debian-12.tar.gz

View File

@ -1 +0,0 @@
949e96622f83b03c9abfdd23c4d45fefb96cbecde83a6315d8d556806a2d3e4a libphp-8.4.21-0-linux-arm64-debian-12.tar.gz

View File

@ -0,0 +1 @@
a64a1cb062f7bdb9ea94bfd0f79d65685d98f22342b2ecfd0e231b183b605000 libphp-8.4.22-1-linux-amd64-debian-12.tar.gz

View File

@ -0,0 +1 @@
e774c534daba5c95201b8e57a6e13e8750b02bafbc8bdfec3d7ef59b520e647a libphp-8.4.22-1-linux-arm64-debian-12.tar.gz

View File

@ -1 +0,0 @@
101267a9e206d18be90a2bd1fc383a168359c96e1db7f7383d31a7366f1137fd php-8.4.21-5-linux-amd64-debian-12.tar.gz

View File

@ -1 +0,0 @@
73d961f31f79364d8c10385e3f2a918fc5b7e8bb4150cbdf11063a1ed60fde9a php-8.4.21-5-linux-arm64-debian-12.tar.gz

View File

@ -0,0 +1 @@
fa6a2f744c04fd308f9ce78cae7dc097fd5de6896ab94144fce2d5bf1b33f2ac php-8.4.22-1-linux-amd64-debian-12.tar.gz

View File

@ -0,0 +1 @@
03d2ae1bb27a1385e619261fe7a757be2b4be99335aa0673c3907d668da09e67 php-8.4.22-1-linux-arm64-debian-12.tar.gz

View File

@ -1 +0,0 @@
374910c7361f00d393eca79a749d29f389b4522057902c7655f0a3a5ae3d1b32 render-template-1.0.9-165-linux-amd64-debian-12.tar.gz

View File

@ -1 +0,0 @@
d492024d2d8261cfb147e7b508d341b91349fd41cf41aecd0706046be8cb108b render-template-1.0.9-165-linux-arm64-debian-12.tar.gz

View File

@ -0,0 +1 @@
e2467be27e79a387c78b8ef3a57ceaa07bea65009972571f20dcf58631656e0b render-template-1.0.9-166-linux-amd64-debian-12.tar.gz

View File

@ -0,0 +1 @@
c2c7634c5c0882d2dbd822744f6b5bdb074a07a1abf710c67e1206f1c20b8afa render-template-1.0.9-166-linux-arm64-debian-12.tar.gz

View File

@ -170,7 +170,7 @@ ensure_user_exists() {
if [[ -n "$home" ]]; then
mkdir -p "$home"
usermod -d "$home" "$user" >/dev/null 2>&1
configure_permissions_ownership "$home" -d "775" -f "664" -u "$user" -g "$group"
configure_permissions_ownership "$home" -d "775" -f "664" -u "$user" -g "$group" -n
fi
}

View File

@ -20,7 +20,7 @@
#########################
is_int() {
local -r int="${1:?missing value}"
if [[ "$int" =~ ^-?[0-9]+ ]]; then
if [[ "$int" =~ ^-?[0-9]+$ ]]; then
true
else
false

View File

@ -49,3 +49,36 @@ get_sematic_version () {
fi
fi
}
########################
# Compares two semantic versions
# Arguments:
# $1 - version1: first version to compare
# $2 - version2: second version to compare
# Returns:
# -1 if version1 is less than version2
# 0 if version1 is equal to version2
# 1 if version1 is greater than version2
#########################
compare_semantic_versions() {
local version1="${1:?version1 is required}"
local version2="${2:?version2 is required}"
local major1 major2 minor1 minor2 patch1 patch2
major1="$(get_sematic_version "$version1" 1)"
major2="$(get_sematic_version "$version2" 1)"
minor1="$(get_sematic_version "$version1" 2)"
minor2="$(get_sematic_version "$version2" 2)"
patch1="$(get_sematic_version "$version1" 3)"
patch2="$(get_sematic_version "$version2" 3)"
if [[ "$major1" -eq "$major2" ]] && [[ "$minor1" -eq "$minor2" ]] && [[ "$patch1" -eq "$patch2" ]]; then
echo "0"
elif [[ "$major1" -lt "$major2" ]] ||
{ [[ "$major1" -eq "$major2" ]] && [[ "$minor1" -lt "$minor2" ]]; } ||
{ [[ "$major1" -eq "$major2" ]] && [[ "$minor1" -eq "$minor2" ]] && [[ "$patch1" -lt "$patch2" ]]; }; then
echo "-1"
else
echo "1"
fi
}

View File

@ -21,7 +21,7 @@ SSLSessionCacheTimeout 300
SSLCertificateKeyFile "{{APACHE_CONF_DIR}}/bitnami/certs/tls.key"
<Directory "{{APACHE_BASE_DIR}}/htdocs">
Options Indexes FollowSymLinks
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

View File

@ -6,7 +6,7 @@ SetEnvIf X-Forwarded-Proto https HTTPS=on
<VirtualHost _default_:80>
DocumentRoot "{{APACHE_BASE_DIR}}/htdocs"
<Directory "{{APACHE_BASE_DIR}}/htdocs">
Options Indexes FollowSymLinks
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

View File

@ -263,12 +263,6 @@ mysql_execute_print_output() {
fi
args+=("-N" "-u" "$user")
[[ -n "$db" ]] && args+=("$db")
# Avoid passing credentials as arguments to mysql, to avoid leaking them given a local observer with /proc read access can read them
if [[ -n "$pass" ]]; then
local pass_file
pass_file="$(credential_to_temp_file "$pass")"
args+=("-p$(<"$pass_file")")
fi
[[ "${#opts[@]}" -gt 0 ]] && args+=("${opts[@]}")
[[ "${#extra_opts[@]}" -gt 0 ]] && args+=("${extra_opts[@]}")
@ -276,11 +270,19 @@ mysql_execute_print_output() {
if [[ "${BITNAMI_DEBUG:-false}" = true ]]; then
local mysql_cmd
mysql_cmd="$(</dev/stdin)"
"$(mysql_binary)" "${args[@]}" <<<"$mysql_cmd"
if [[ -n "$pass" ]]; then
MYSQL_PWD="$pass" "$(mysql_binary)" "${args[@]}" <<<"$mysql_cmd"
else
"$(mysql_binary)" "${args[@]}" <<<"$mysql_cmd"
fi
else
# Do not store the command(s) as a variable, to avoid issues when importing large files
# https://github.com/bitnami/bitnami-docker-mariadb/issues/251
"$(mysql_binary)" "${args[@]}"
if [[ -n "$pass" ]]; then
MYSQL_PWD="$pass" "$(mysql_binary)" "${args[@]}"
else
"$(mysql_binary)" "${args[@]}"
fi
fi
}
@ -992,13 +994,10 @@ mysql_healthcheck() {
root_password="$(get_master_env_var_value ROOT_PASSWORD)"
if [[ -n "$root_password" ]]; then
# Avoid passing credentials as arguments to mysqladmin, to avoid leaking them given a local observer with /proc read access can read them
local root_password_file
root_password_file="$(credential_to_temp_file "$root_password")"
args+=("-p$(<"$root_password_file")")
MYSQL_PWD="$root_password" mysqladmin "${args[@]}" ping && MYSQL_PWD="$root_password" mysqladmin "${args[@]}" status
else
mysqladmin "${args[@]}" ping && mysqladmin "${args[@]}" status
fi
mysqladmin "${args[@]}" ping && mysqladmin "${args[@]}" status
}
########################

View File

@ -133,6 +133,11 @@ wordpress_validate() {
is_empty_value "${WORDPRESS_DATABASE_PASSWORD}" && print_validation_error "The WORDPRESS_DATABASE_PASSWORD environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow a blank password. This is only recommended for development environments."
fi
# Validate hostname
if is_empty_value "$WORDPRESS_HOSTNAME"; then
warn "WORDPRESS_HOSTNAME is not set, site URL will be constructed based on HTTP_HOST header which opens up vulnerability to password-reset poisoning attacks. Do not leave this variable empty in production environments."
fi
# Validate SMTP credentials
if ! is_empty_value "$WORDPRESS_SMTP_HOST"; then
check_resolved_hostname "$WORDPRESS_SMTP_HOST"
@ -619,9 +624,13 @@ EOF
# None
#########################
wordpress_configure_urls() {
# Set URL to dynamic value, depending on which host WordPress is accessed from (to be overridden later)
# Note that wp-config.php is officially indented via tabs, not spaces
wordpress_conf_append "$(
local wp_url_string
local wp_url_protocol="http"
if is_empty_value "$WORDPRESS_HOSTNAME"; then
wp_url_string="'${wp_url_protocol}://' . \$_SERVER['HTTP_HOST'] . '/'"
# Set URL to dynamic value, depending on which host WordPress is accessed from (to be overridden later)
# Note that wp-config.php is officially indented via tabs, not spaces
wordpress_conf_append "$(
cat <<"EOF"
/**
* The WP_SITEURL and WP_HOME options are configured to access from any hostname or IP address.
@ -634,10 +643,10 @@ if ( defined( 'WP_CLI' ) ) {
$_SERVER['HTTP_HOST'] = '127.0.0.1';
}
EOF
)"
local wp_url_protocol="http"
(is_boolean_yes "$WORDPRESS_ENABLE_HTTPS" || [[ "$WORDPRESS_SCHEME" = "https" ]]) && wp_url_protocol="https"
local wp_url_string="'${wp_url_protocol}://' . \$_SERVER['HTTP_HOST'] . '/'"
)"
else
wp_url_string="'${wp_url_protocol}://${WORDPRESS_HOSTNAME}/'"
fi
wordpress_conf_set "WP_HOME" "$wp_url_string" yes
wordpress_conf_set "WP_SITEURL" "$wp_url_string" yes
}
@ -725,6 +734,9 @@ wordpress_generate_web_server_configuration() {
error "Unknown WordPress Multisite network mode"
return 1
fi
if ! is_empty_value "$WORDPRESS_HOSTNAME"; then
web_server_config_create_flags+=("--server-name" "$WORDPRESS_HOSTNAME")
fi
if ! is_boolean_yes "$WORDPRESS_ENABLE_XML_RPC"; then
apache_config+=$'\n'"$(render-template "${template_dir}/apache-wordpress-disable-xml-rpc.tpl")"

View File

@ -28,6 +28,7 @@ wordpress_env_vars=(
WORDPRESS_ENABLE_HTTPS
WORDPRESS_BLOG_NAME
WORDPRESS_SCHEME
WORDPRESS_HOSTNAME
WORDPRESS_HTACCESS_OVERRIDE_NONE
WORDPRESS_ENABLE_HTACCESS_PERSISTENCE
WORDPRESS_RESET_DATA_PERMISSIONS
@ -128,6 +129,7 @@ export WORDPRESS_DATA_TO_PERSIST="${WORDPRESS_DATA_TO_PERSIST:-wp-config.php wp-
export WORDPRESS_ENABLE_HTTPS="${WORDPRESS_ENABLE_HTTPS:-no}" # only used during the first initialization
export WORDPRESS_BLOG_NAME="${WORDPRESS_BLOG_NAME:-"User's blog"}" # only used during the first initialization
export WORDPRESS_SCHEME="${WORDPRESS_SCHEME:-http}" # only used during the first initialization
export WORDPRESS_HOSTNAME="${WORDPRESS_HOSTNAME:-}" # only used during the first initialization
export WORDPRESS_HTACCESS_OVERRIDE_NONE="${WORDPRESS_HTACCESS_OVERRIDE_NONE:-yes}" # only used during the first initialization
WORDPRESS_ENABLE_HTACCESS_PERSISTENCE="${WORDPRESS_ENABLE_HTACCESS_PERSISTENCE:-"${WORDPRESS_HTACCESS_PERSISTENCE_ENABLED:-}"}"
export WORDPRESS_ENABLE_HTACCESS_PERSISTENCE="${WORDPRESS_ENABLE_HTACCESS_PERSISTENCE:-no}" # only used during the first initialization

View File

@ -82,6 +82,7 @@ The following tables list the main variables you can set.
| `WORDPRESS_ENABLE_HTTPS` | Whether to enable HTTPS for WordPress by default. | `no` |
| `WORDPRESS_BLOG_NAME` | WordPress blog name. | `"User's blog"` |
| `WORDPRESS_SCHEME` | Scheme to generate application URLs. Deprecated by `WORDPRESS_ENABLE_HTTPS`. | `http` |
| `WORDPRESS_HOSTNAME` | Hostname to generate application URLs. | `nil` |
| `WORDPRESS_HTACCESS_OVERRIDE_NONE` | Set the Apache `AllowOverride` variable to `None`. All the default directives will be loaded from `/opt/bitnami/wordpress/wordpress-htaccess.conf`. | `yes` |
| `WORDPRESS_ENABLE_HTACCESS_PERSISTENCE` | Persist the custom changes of the htaccess. It depends on the value of `WORDPRESS_HTACCESS_OVERRIDE_NONE`, when `yes` it will persist `/opt/bitnami/wordpress/wordpress-htaccess.conf` if `no` it will persist `/opt/bitnami/wordpress/.htaccess`. | `no` |
| `WORDPRESS_RESET_DATA_PERMISSIONS` | Force resetting ownership/permissions on persisted data when initializing, otherwise it assumes the ownership/permissions are correct. Ignored when running as non-root. | `no` |