8.9.19-debian-10-r32 release

This commit is contained in:
Bitnami Bot
2021-10-19 18:02:29 +00:00
parent fd7cd677ac
commit c734433882
9 changed files with 183 additions and 64 deletions

View File

@@ -9,7 +9,7 @@ ENV HOME="/" \
COPY prebuildfs /
# Install required system packages and dependencies
RUN install_packages acl ca-certificates curl dirmngr gnupg gzip libaudit1 libbsd0 libbz2-1.0 libc6 libcap-ng0 libcom-err2 libcurl4 libexpat1 libffi6 libfftw3-double3 libfontconfig1 libfreetype6 libgcc1 libgcrypt20 libgeoip1 libglib2.0-0 libgmp10 libgnutls30 libgomp1 libgpg-error0 libgssapi-krb5-2 libhogweed4 libicu63 libidn2-0 libjemalloc2 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.4-2 liblqr-1-0 libltdl7 liblzma5 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmcrypt4 libmemcached11 libmemcachedutil2 libncurses6 libnettle6 libnghttp2-14 libonig5 libp11-kit0 libpam0g libpcre3 libpng16-16 libpq5 libpsl5 libreadline7 librtmp1 libsasl2-2 libsodium23 libsqlite3-0 libssh2-1 libssl1.1 libstdc++6 libsybdb5 libtasn1-6 libtidy5deb1 libtinfo6 libunistring2 libuuid1 libwebp6 libx11-6 libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxslt1.1 libzip4 procps tar unzip zlib1g
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "php" "7.4.24-4" --checksum aea0d0d3db114c9eab576f591305b113fb6b2ceec23f5125d3dda3189bbd0f13
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "php" "7.4.24-5" --checksum e9c8baef629a858d404b0fe58725650c2f9c282da7735ee6477bd9633c00089c
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "nginx" "1.21.3-0" --checksum 2e36afe1b4930d427d96b8321d919202751933a109cdd260fee432730342994a
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "mysql-client" "10.3.31-2" --checksum 15b394a022ca1d0b4b89bfee0487ee13f9e8cc697d0ca09ce62a0a3732536236
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "render-template" "1.0.0-3" --checksum 8179ad1371c9a7d897fe3b1bf53bbe763f94edafef19acad2498dd48b3674efe
@@ -18,14 +18,14 @@ RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "drupal" "8.9.19-
RUN chmod g+rwX /opt/bitnami
COPY rootfs /
RUN /opt/bitnami/scripts/php/postunpack.sh
RUN /opt/bitnami/scripts/nginx/postunpack.sh
RUN /opt/bitnami/scripts/php/postunpack.sh
RUN /opt/bitnami/scripts/nginx-php-fpm/postunpack.sh
RUN /opt/bitnami/scripts/drupal/postunpack.sh
RUN /opt/bitnami/scripts/mysql-client/postunpack.sh
ENV ALLOW_EMPTY_PASSWORD="no" \
BITNAMI_APP_NAME="drupal-nginx" \
BITNAMI_IMAGE_VERSION="8.9.19-debian-10-r31" \
BITNAMI_IMAGE_VERSION="8.9.19-debian-10-r32" \
MARIADB_HOST="mariadb" \
MARIADB_PORT_NUMBER="3306" \
MARIADB_ROOT_PASSWORD="" \

View File

@@ -29,10 +29,10 @@
},
"php": {
"arch": "amd64",
"digest": "aea0d0d3db114c9eab576f591305b113fb6b2ceec23f5125d3dda3189bbd0f13",
"digest": "e9c8baef629a858d404b0fe58725650c2f9c282da7735ee6477bd9633c00089c",
"distro": "debian-10",
"type": "NAMI",
"version": "7.4.24-4"
"version": "7.4.24-5"
},
"render-template": {
"arch": "amd64",

View File

@@ -140,3 +140,24 @@ parse_uri() {
esac
[[ "$uri" =~ $URI_REGEX ]] && echo "${BASH_REMATCH[${index}]}"
}
########################
# Wait for a HTTP connection to succeed
# Globals:
# *
# Arguments:
# $1 - URL to wait for
# $2 - Maximum amount of retries (optional)
# $3 - Time between retries (optional)
# Returns:
# true if the HTTP connection succeeded, false otherwise
#########################
wait_for_http_connection() {
local url="${1:?missing url}"
local retries="${2:-}"
local sleep_time="${3:-}"
if ! retry_while "debug_execute curl --silent ${url}" "$retries" "$sleep_time"; then
error "Could not connect to ${url}"
return 1
fi
}

View File

@@ -158,7 +158,7 @@ remove_cron_conf() {
# $3 - Start command
# $4 - Stop command
# Flags:
# --disabled - Whether to disable the monit configuration
# --disable - Whether to disable the monit configuration
# Returns:
# None
#########################
@@ -174,9 +174,8 @@ generate_monit_conf() {
shift 4
while [[ "$#" -gt 0 ]]; do
case "$1" in
--disabled)
shift
disabled="$1"
--disable)
disabled="yes"
;;
*)
echo "Invalid command line flag ${1}" >&2

View File

@@ -164,11 +164,14 @@ web_server_reload() {
# Arguments:
# $1 - App name
# Flags:
# --hosts - Hosts to enable
# --type - Application type, which has an effect on which configuration template to use
# --hosts - Host listen addresses
# --server-name - Server name
# --server-aliases - Server aliases
# --allow-remote-connections - Whether to allow remote connections or to require local connections
# --disabled - Whether to render the file with a .disabled prefix
# --enable-https - Enable app configuration on HTTPS port
# --disable - Whether to render server configurations with a .disabled prefix
# --disable-http - Whether to render the app's HTTP server configuration with a .disabled prefix
# --disable-https - Whether to render the app's HTTPS server configuration with a .disabled prefix
# --http-port - HTTP port number
# --https-port - HTTPS port number
# --document-root - Path to document root directory
@@ -198,11 +201,18 @@ ensure_web_server_app_configuration_exists() {
while [[ "$#" -gt 0 ]]; do
case "$1" in
# Common flags
--disable \
| --disable-http \
| --disable-https \
)
apache_args+=("$1")
nginx_args+=("$1")
;;
--hosts \
| --server-name \
| --server-aliases \
| --type \
| --allow-remote-connections \
| --disabled \
| --enable-https \
| --http-port \
| --https-port \
| --document-root \
@@ -347,8 +357,13 @@ ensure_web_server_prefix_configuration_exists() {
# Arguments:
# $1 - App name
# Flags:
# --hosts - Hosts to enable
# --enable-https - Update HTTPS app configuration
# --hosts - Host listen addresses
# --server-name - Server name
# --server-aliases - Server aliases
# --enable-http - Enable HTTP app configuration (if not enabled already)
# --enable-https - Enable HTTPS app configuration (if not enabled already)
# --disable-http - Disable HTTP app configuration (if not disabled already)
# --disable-https - Disable HTTPS app configuration (if not disabled already)
# --http-port - HTTP port number
# --https-port - HTTPS port number
# Returns:
@@ -363,8 +378,20 @@ web_server_update_app_configuration() {
while [[ "$#" -gt 0 ]]; do
case "$1" in
# Common flags
--hosts \
--enable-http \
| --enable-https \
| --disable-http \
| --disable-https \
)
args+=("$1")
;;
--hosts \
| --server-name \
| --server-aliases \
| --enable-http \
| --enable-https \
| --disable-http \
| --disable-https \
| --http-port \
| --https-port \
)

View File

@@ -164,11 +164,14 @@ nginx_initialize() {
# Arguments:
# $1 - App name
# Flags:
# --hosts - Hosts to enable
# --type - Application type, which has an effect on what configuration template will be used, allowed values: php, (empty)
# --hosts - Host listen addresses
# --server-name - Server name (if not specified, a catch-all server block will be created)
# --server-aliases - Server aliases
# --allow-remote-connections - Whether to allow remote connections or to require local connections
# --disabled - Whether to render the file with a .disabled prefix
# --enable-https - Enable app configuration on HTTPS port
# --disable - Whether to render the app's server blocks with a .disabled prefix
# --disable-http - Whether to render the app's HTTP server block with a .disabled prefix
# --disable-https - Whether to render the app's HTTPS server block with a .disabled prefix
# --http-port - HTTP port number
# --https-port - HTTPS port number
# --additional-configuration - Additional server block configuration (no default)
@@ -182,28 +185,39 @@ ensure_nginx_app_configuration_exists() {
# Default options
local type=""
local -a hosts=()
local server_name
local -a server_aliases=()
local allow_remote_connections="yes"
local disabled="no"
local enable_https="yes"
local http_port="${NGINX_HTTP_PORT_NUMBER:-"$NGINX_DEFAULT_HTTP_PORT_NUMBER"}"
local https_port="${NGINX_HTTPS_PORT_NUMBER:-"$NGINX_DEFAULT_HTTPS_PORT_NUMBER"}"
local var_name
local disable="no"
local disable_http="no"
local disable_https="no"
# Template variables defaults
export additional_configuration=""
export external_configuration=""
export document_root="${BITNAMI_ROOT_DIR}/${app}"
export http_port="${NGINX_HTTP_PORT_NUMBER:-"$NGINX_DEFAULT_HTTP_PORT_NUMBER"}"
export https_port="${NGINX_HTTPS_PORT_NUMBER:-"$NGINX_DEFAULT_HTTPS_PORT_NUMBER"}"
# Validate arguments
local var_name
shift
while [[ "$#" -gt 0 ]]; do
case "$1" in
--hosts)
--hosts \
| --server-aliases)
var_name="$(echo "$1" | sed -e "s/^--//" -e "s/-/_/g")"
shift
read -r -a hosts <<< "$1"
read -r -a "$var_name" <<< "$1"
;;
--disable \
| --disable-http \
| --disable-https \
)
var_name="$(echo "$1" | sed -e "s/^--//" -e "s/-/_/g")"
export "${var_name}=yes"
;;
--type \
| --server-name \
| --allow-remote-connections \
| --disabled \
| --enable-https \
| --http-port \
| --https-port \
| --additional-configuration \
@@ -236,6 +250,20 @@ ensure_nginx_app_configuration_exists() {
http_listen_configuration=$'\n'"listen ${http_port} default_server;"
https_listen_configuration=$'\n'"listen ${https_port} ssl default_server;"
fi
# Construct server_name block
export server_name_configuration=""
if ! is_empty_value "${server_name:-}"; then
server_name_configuration="server_name ${server_name}"
if [[ "${#server_aliases[@]}" -gt 0 ]]; then
server_name_configuration+=" ${server_aliases[*]}"
fi
server_name_configuration+=";"
else
server_name_configuration="
# Catch-all server block
# See: https://nginx.org/en/docs/http/server_names.html#miscellaneous_names
server_name _;"
fi
# ACL configuration
export acl_configuration=""
if ! is_boolean_yes "$allow_remote_connections"; then
@@ -248,6 +276,7 @@ if (\$remote_addr != 127.0.0.1) {
absolute_redirect off;"
fi
# Indent configurations
server_name_configuration="$(indent $'\n'"$server_name_configuration" 4)"
acl_configuration="$(indent "$acl_configuration" 4)"
additional_configuration=$'\n'"$(indent "$additional_configuration" 4)"
external_configuration=$'\n'"$external_configuration"
@@ -258,10 +287,11 @@ absolute_redirect off;"
local template_name="app"
[[ -n "$type" && "$type" != "php" ]] && template_name="app-${type}"
local template_dir="${BITNAMI_ROOT_DIR}/scripts/nginx/bitnami-templates"
local server_block_suffix=""
is_boolean_yes "$disabled" && server_block_suffix=".disabled"
local http_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-server-block.conf${server_block_suffix}"
local https_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-https-server-block.conf${server_block_suffix}"
local http_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-server-block.conf"
local https_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-https-server-block.conf"
local -r disable_suffix=".disabled"
( is_boolean_yes "$disable" || is_boolean_yes "$disable_http" ) && http_server_block+="$disable_suffix"
( is_boolean_yes "$disable" || is_boolean_yes "$disable_https" ) && https_server_block+="$disable_suffix"
if is_file_writable "$http_server_block"; then
# Create file with root group write privileges, so it can be modified in non-root containers
[[ ! -f "$http_server_block" ]] && touch "$http_server_block" && chmod g+rw "$http_server_block"
@@ -272,17 +302,15 @@ absolute_redirect off;"
else
warn "The ${app} server block file '${http_server_block}' is not writable. Configurations based on environment variables will not be applied for this file."
fi
if is_boolean_yes "$enable_https"; then
if is_file_writable "$https_server_block"; then
# Create file with root group write privileges, so it can be modified in non-root containers
[[ ! -f "$https_server_block" ]] && touch "$https_server_block" && chmod g+rw "$https_server_block"
render-template "${template_dir}/${template_name}-https-server-block.conf.tpl" | sed '/^\s*$/d' > "$https_server_block"
elif [[ ! -f "$https_server_block" ]]; then
error "Could not create server block for ${app} at '${https_server_block}'. Check permissions and ownership for parent directories."
return 1
else
warn "The ${app} server block file '${https_server_block}' is not writable. Configurations based on environment variables will not be applied for this file."
fi
if is_file_writable "$https_server_block"; then
# Create file with root group write privileges, so it can be modified in non-root containers
[[ ! -f "$https_server_block" ]] && touch "$https_server_block" && chmod g+rw "$https_server_block"
render-template "${template_dir}/${template_name}-https-server-block.conf.tpl" | sed '/^\s*$/d' > "$https_server_block"
elif [[ ! -f "$https_server_block" ]]; then
error "Could not create server block for ${app} at '${https_server_block}'. Check permissions and ownership for parent directories."
return 1
else
warn "The ${app} server block file '${https_server_block}' is not writable. Configurations based on environment variables will not be applied for this file."
fi
}
@@ -299,9 +327,10 @@ ensure_nginx_app_configuration_not_exists() {
local app="${1:?missing app}"
local http_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-server-block.conf"
local https_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-https-server-block.conf"
local -r disable_suffix=".disabled"
# Note that 'rm -f' will not fail if the files don't exist
# However if we lack permissions to remove the file, it will result in a non-zero exit code, as expected by this function
rm -f "$http_server_block" "$https_server_block"
rm -f "$http_server_block" "$https_server_block" "${http_server_block}${disable_suffix}" "${https_server_block}${disable_suffix}"
}
########################
@@ -325,13 +354,13 @@ ensure_nginx_prefix_configuration_exists() {
# Default options
local type=""
local allow_remote_connections="yes"
local var_name
local prefix="/${app}"
# Template variables defaults
export additional_configuration=""
export document_root="${BITNAMI_ROOT_DIR}/${app}"
export extra_directory_configuration=""
# Validate arguments
local var_name
shift
while [[ "$#" -gt 0 ]]; do
case "$1" in
@@ -395,7 +424,10 @@ absolute_redirect off;"
# $1 - App name
# Flags:
# --hosts - Hosts to enable
# --enable-https - Update HTTPS app configuration
# --enable-http - Enable HTTP app configuration (if not enabled already)
# --enable-https - Enable HTTPS app configuration (if not enabled already)
# --disable-http - Disable HTTP app configuration (if not disabled already)
# --disable-https - Disable HTTPS app configuration (if not disabled already)
# --http-port - HTTP port number
# --https-port - HTTPS port number
# Returns:
@@ -405,25 +437,36 @@ nginx_update_app_configuration() {
local -r app="${1:?missing app}"
# Default options
local -a hosts=()
local enable_https="yes"
local enable_http="no"
local enable_https="no"
local disable_http="no"
local disable_https="no"
local http_port="${NGINX_HTTP_PORT_NUMBER:-"$NGINX_DEFAULT_HTTP_PORT_NUMBER"}"
local https_port="${NGINX_HTTPS_PORT_NUMBER:-"$NGINX_DEFAULT_HTTPS_PORT_NUMBER"}"
# Validate arguments
local var_name
shift
while [[ "$#" -gt 0 ]]; do
case "$1" in
--hosts)
--hosts \
| --server-aliases)
var_name="$(echo "$1" | sed -e "s/^--//" -e "s/-/_/g")"
shift
read -r -a hosts <<< "$1"
read -r -a "$var_name" <<< "$1"
;;
# Common flags
--enable-https \
--server-name \
| --enable-http \
| --enable-https \
| --disable-http \
| --disable-https \
| --http-port \
| --https-port \
)
args+=("$1" "$2")
var_name="$(echo "$1" | sed -e "s/^--//" -e "s/-/_/g")"
shift
declare "${var_name}=${1}"
;;
*)
@@ -453,13 +496,46 @@ nginx_update_app_configuration() {
# Update configuration
local -r http_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-server-block.conf"
local -r https_server_block="${NGINX_SERVER_BLOCKS_DIR}/${app}-https-server-block.conf"
if is_file_writable "$http_server_block"; then
replace_in_file "$http_server_block" "^\s*listen\s.*;" "$http_listen_configuration"
else
warn "The ${app} server block file '${http_server_block}' is not writable. Configurations based on environment variables will not be applied for this file."
# Helper function to avoid duplicating code
update_common_server_block_config() {
local -r server_block_file="${1:?missing server block}"
# Update server_name
if ! is_empty_value "${server_name:-}"; then
local server_name_list="$server_name"
if [[ "${#server_aliases[@]}" -gt 0 ]]; then
server_name_list+=" ${server_aliases[*]}"
fi
replace_in_file "$server_block_file" "^(\s*server_name\s+)[^;]*" "\1${server_name_list}"
fi
}
# Disable and enable configuration files
rename_conf_file() {
local -r origin="$1"
local -r destination="$2"
if is_file_writable "$origin" && is_file_writable "$destination"; then
warn "Could not rename server block file '${origin}' to '${destination}' due to lack of permissions."
else
mv "$origin" "$destination"
fi
}
is_boolean_yes "$disable_http" && [[ -e "$http_server_block" ]] && rename_conf_file "${http_server_block}${disable_suffix}" "$http_server_block"
is_boolean_yes "$disable_https" && [[ -e "$https_server_block" ]] && rename_conf_file "${https_server_block}${disable_suffix}" "$https_server_block"
is_boolean_yes "$enable_http" && [[ -e "${http_server_block}${disable_suffix}" ]] && rename_conf_file "${http_server_block}${disable_suffix}" "$http_server_block"
is_boolean_yes "$enable_https" && [[ -e "${https_server_block}${disable_suffix}" ]] && rename_conf_file "${https_server_block}${disable_suffix}" "$https_server_block"
# Update only configuration files without the '.disabled' suffix
if [[ -e "$http_server_block" ]]; then
if is_file_writable "$http_server_block"; then
update_common_server_block_config "$http_server_block"
# Update specific server block config (listen addresses)
replace_in_file "$http_server_block" "^\s*listen\s.*;" "$http_listen_configuration"
else
warn "The ${app} server block file '${http_server_block}' is not writable. Configurations based on environment variables will not be applied for this file."
fi
fi
if is_boolean_yes "$enable_https"; then
if [[ -e "$https_server_block" ]]; then
if is_file_writable "$https_server_block"; then
update_common_server_block_config "$https_server_block"
# Update specific server block config (listen addresses)
replace_in_file "$https_server_block" "^\s*listen\s.*\sssl;" "$https_listen_configuration"
else
warn "The ${app} server block file '${https_server_block}' is not writable. Configurations based on environment variables will not be applied for this file."

View File

@@ -6,9 +6,7 @@ server {
root {{document_root}};
# Catch-all server block
# See: https://nginx.org/en/docs/http/server_names.html#miscellaneous_names
server_name _;
{{server_name_configuration}}
{{acl_configuration}}

View File

@@ -6,9 +6,7 @@ server {
root {{document_root}};
# Catch-all server block
# See: https://nginx.org/en/docs/http/server_names.html#miscellaneous_names
server_name _;
{{server_name_configuration}}
ssl_certificate bitnami/certs/server.crt;
ssl_certificate_key bitnami/certs/server.key;

View File

@@ -43,7 +43,7 @@ Learn more about the Bitnami tagging policy and the difference between rolling t
* [`9`, `9-debian-10`, `9.2.7`, `9.2.7-debian-10-r11`, `latest` (9/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-drupal-nginx/blob/9.2.7-debian-10-r11/9/debian-10/Dockerfile)
* [`8`, `8-debian-10`, `8.9.19`, `8.9.19-debian-10-r31` (8/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-drupal-nginx/blob/8.9.19-debian-10-r31/8/debian-10/Dockerfile)
* [`8`, `8-debian-10`, `8.9.19`, `8.9.19-debian-10-r32` (8/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-drupal-nginx/blob/8.9.19-debian-10-r32/8/debian-10/Dockerfile)
Subscribe to project updates by watching the [bitnami/drupal-nginx GitHub repo](https://github.com/bitnami/bitnami-docker-drupal-nginx).