diff --git a/bitnami/magento/2/debian-11/Dockerfile b/bitnami/magento/2/debian-11/Dockerfile index cf76682f1798..5d0cc3ab48d9 100644 --- a/bitnami/magento/2/debian-11/Dockerfile +++ b/bitnami/magento/2/debian-11/Dockerfile @@ -4,7 +4,7 @@ ARG TARGETARCH LABEL org.opencontainers.image.authors="https://bitnami.com/contact" \ org.opencontainers.image.description="Application packaged by Bitnami" \ - org.opencontainers.image.ref.name="2.4.5-debian-11-r11" \ + org.opencontainers.image.ref.name="2.4.5-debian-11-r12" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/magento" \ org.opencontainers.image.title="magento" \ org.opencontainers.image.vendor="VMware, Inc." \ @@ -18,15 +18,15 @@ ENV HOME="/" \ COPY prebuildfs / SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Install required system packages and dependencies -RUN install_packages acl ca-certificates cron curl git gzip libaudit1 libbrotli1 libbsd0 libbz2-1.0 libc6 libcap-ng0 libcom-err2 libcrypt1 libcurl4 libexpat1 libffi7 libfftw3-double3 libfontconfig1 libfreetype6 libgcc-s1 libgcrypt20 libglib2.0-0 libgmp10 libgnutls30 libgomp1 libgpg-error0 libgssapi-krb5-2 libhogweed6 libicu67 libidn2-0 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 libmd0 libmemcached11 libncurses6 libnettle8 libnghttp2-14 libonig5 libp11-kit0 libpam0g libpcre2-8-0 libpcre3 libpng16-16 libpq5 libpsl5 libreadline8 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 sqlite3 tar zlib1g +RUN install_packages acl ca-certificates cron curl gzip libaudit1 libbrotli1 libbsd0 libbz2-1.0 libc6 libcap-ng0 libcom-err2 libcrypt1 libcurl4 libexpat1 libffi7 libfftw3-double3 libfontconfig1 libfreetype6 libgcc-s1 libgcrypt20 libglib2.0-0 libgmp10 libgnutls30 libgomp1 libgpg-error0 libgssapi-krb5-2 libhogweed6 libicu67 libidn2-0 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 libmd0 libmemcached11 libncurses6 libnettle8 libnghttp2-14 libonig5 libp11-kit0 libpam0g libpcre2-8-0 libpcre3 libpng16-16 libpq5 libpsl5 libreadline8 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 zlib1g RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ - if [ ! -f php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz ]; then \ - curl -SsLf https://downloads.bitnami.com/files/stacksmith/php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz -O ; \ - curl -SsLf https://downloads.bitnami.com/files/stacksmith/php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz.sha256 -O ; \ + if [ ! -f php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz ]; then \ + curl -SsLf https://downloads.bitnami.com/files/stacksmith/php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz -O ; \ + curl -SsLf https://downloads.bitnami.com/files/stacksmith/php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz.sha256 -O ; \ fi && \ - sha256sum -c php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz.sha256 && \ - tar -zxf php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \ - rm -rf php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz php-8.1.10-1-linux-${OS_ARCH}-debian-11.tar.gz.sha256 + sha256sum -c php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz.sha256 && \ + tar -zxf php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \ + rm -rf php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz php-8.1.10-2-linux-${OS_ARCH}-debian-11.tar.gz.sha256 RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ if [ ! -f apache-2.4.54-156-linux-${OS_ARCH}-debian-11.tar.gz ]; then \ curl -SsLf https://downloads.bitnami.com/files/stacksmith/apache-2.4.54-156-linux-${OS_ARCH}-debian-11.tar.gz -O ; \ diff --git a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json index 0cdd8349467a..d51d1ee2c1c1 100644 --- a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json +++ b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json @@ -36,10 +36,10 @@ }, "php": { "arch": "amd64", - "digest": "990c269d05ef61a8dee166cf603ba9be7641ac9b1a735b93d7d65793868a7fc6", + "digest": "2a822eb0e3f2d78200c214fffeffd6aa7e15f5089bd1af5e20c70135f487eb16", "distro": "debian-11", "type": "NAMI", - "version": "8.1.10-1" + "version": "8.1.10-2" }, "render-template": { "arch": "amd64", diff --git a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libfs.sh b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libfs.sh index 1b504b1df458..801b9412bd99 100644 --- a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libfs.sh +++ b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libfs.sh @@ -170,18 +170,19 @@ configure_permissions_ownership() { read -r -a filepaths <<<"$paths" for p in "${filepaths[@]}"; do if [[ -e "$p" ]]; then + find -L "$p" -printf "" if [[ -n $dir_mode ]]; then - find -L "$p" -type d -exec chmod "$dir_mode" {} \; + find -L "$p" -type d ! -perm "$dir_mode" -print0 | xargs -r -0 chmod "$dir_mode" fi if [[ -n $file_mode ]]; then - find -L "$p" -type f -exec chmod "$file_mode" {} \; + find -L "$p" -type f ! -perm "$file_mode" -print0 | xargs -r -0 chmod "$file_mode" fi if [[ -n $user ]] && [[ -n $group ]]; then - chown -LR "$user":"$group" "$p" + find -L "$p" -print0 | xargs -r -0 chown "${user}:${group}" elif [[ -n $user ]] && [[ -z $group ]]; then - chown -LR "$user" "$p" + find -L "$p" -print0 | xargs -r -0 chown "${user}" elif [[ -z $user ]] && [[ -n $group ]]; then - chgrp -LR "$group" "$p" + find -L "$p" -print0 | xargs -r -0 chgrp "${group}" fi else stderr_print "$p does not exist" diff --git a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libos.sh b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libos.sh index b6c50da90807..08b1d4884c28 100644 --- a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libos.sh +++ b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libos.sh @@ -464,3 +464,37 @@ convert_to_hex() { printf '%x' "'${char}" done } + +######################## +# Get boot time +# Globals: +# None +# Arguments: +# None +# Returns: +# Boot time metadata +######################### +get_boot_time() { + stat /proc --format=%Y +} + +######################## +# Get machine ID +# Globals: +# None +# Arguments: +# None +# Returns: +# Machine ID +######################### +get_machine_id() { + local machine_id + if [[ -f /etc/machine-id ]]; then + machine_id="$(cat /etc/machine-id)" + fi + if [[ -z "$machine_id" ]]; then + # Fallback to the boot-time, which will at least ensure a unique ID in the current session + machine_id="$(get_boot_time)" + fi + echo "$machine_id" +} diff --git a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh index a713bd108e15..f964ab09fcba 100644 --- a/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh +++ b/bitnami/magento/2/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh @@ -271,3 +271,140 @@ remove_logrotate_conf() { local logrotate_conf_dir="/etc/logrotate.d" rm -f "${logrotate_conf_dir}/${service_name}" } + +######################## +# Generate a Systemd configuration file +# Arguments: +# $1 - Service name +# Flags: +# --exec-start - Start command (required) +# --exec-stop - Stop command (optional) +# --exec-reload - Reload command (optional) +# --name - Service full name (e.g. Apache HTTP Server, defaults to $1) +# --restart - When to restart the Systemd service after being stopped (defaults to always) +# --pid-file - Service PID file (required when --restart is set to always) +# --type - Systemd unit type (defaults to forking) +# --user - System user to start the service with +# --group - System group to start the service with +# --environment - Environment variable to define (multiple --environment options may be passed) +# Returns: +# None +######################### +generate_systemd_conf() { + local -r service_name="${1:?service name is missing}" + local -r systemd_units_dir="/etc/systemd/system" + local -r service_file="${systemd_units_dir}/bitnami.${service_name}.service" + # Default values + local name="$service_name" + local type="forking" + local user="" + local group="" + local environment="" + local exec_start="" + local exec_stop="" + local exec_reload="" + local restart="always" + local pid_file="" + # Parse CLI flags + shift + while [[ "$#" -gt 0 ]]; do + case "$1" in + --name \ + | --type \ + | --user \ + | --group \ + | --exec-start \ + | --exec-stop \ + | --exec-reload \ + | --restart \ + | --pid-file \ + ) + var_name="$(echo "$1" | sed -e "s/^--//" -e "s/-/_/g")" + shift + declare "$var_name"="${1:?"$var_name" is missing}" + ;; + --environment) + shift + # It is possible to add multiple environment lines + [[ -n "$environment" ]] && environment+=$'\n' + environment+="Environment=${1:?"environment" is missing}" + ;; + *) + echo "Invalid command line flag ${1}" >&2 + return 1 + ;; + esac + shift + done + # Validate inputs + local error="no" + if [[ -z "$exec_start" ]]; then + error "The --exec-start option is required" + error="yes" + fi + if [[ "$restart" = "always" && -z "$pid_file" ]]; then + error "The --restart option cannot be set to 'always' if --pid-file is not set" + error="yes" + fi + if [[ "$error" != "no" ]]; then + return 1 + fi + # Generate the Systemd unit + cat > "$service_file" <> "$service_file" <> "$service_file" <> "$service_file" <> "$service_file" <> "$service_file" <> "$service_file" <<< "$environment" + fi + cat >> "$service_file" <