diff --git a/bitnami/phpmyadmin/5/debian-12/Dockerfile b/bitnami/phpmyadmin/5/debian-12/Dockerfile index 4cf1c96979d2..6b23cbd6b51c 100644 --- a/bitnami/phpmyadmin/5/debian-12/Dockerfile +++ b/bitnami/phpmyadmin/5/debian-12/Dockerfile @@ -7,10 +7,10 @@ ARG TARGETARCH LABEL com.vmware.cp.artifact.flavor="sha256:c50c90cfd9d12b445b011e6ad529f1ad3daea45c26d20b00732fae3cd71f6a83" \ org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2024-02-24T00:19:43Z" \ + org.opencontainers.image.created="2024-03-20T10:31:55Z" \ org.opencontainers.image.description="Application packaged by VMware, Inc" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.ref.name="5.2.1-debian-12-r21" \ + org.opencontainers.image.ref.name="5.2.1-debian-12-r22" \ org.opencontainers.image.title="phpmyadmin" \ org.opencontainers.image.vendor="VMware, Inc." \ org.opencontainers.image.version="5.2.1" @@ -26,11 +26,11 @@ SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"] RUN install_packages ca-certificates curl libaudit1 libbrotli1 libbsd0 libbz2-1.0 libcap-ng0 libcom-err2 libcrypt1 libcurl4 libexpat1 libffi8 libfftw3-double3 libfontconfig1 libfreetype6 libgcc-s1 libgcrypt20 libglib2.0-0 libgmp10 libgnutls30 libgomp1 libgpg-error0 libgssapi-krb5-2 libhashkit2 libhogweed6 libicu72 libidn2-0 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.5-0 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 libssl3 libstdc++6 libsybdb5 libtasn1-6 libtidy5deb1 libtinfo6 libunistring2 libuuid1 libwebp7 libx11-6 libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxslt1.1 libzip4 libzstd1 openssl procps zlib1g RUN mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ ; \ COMPONENTS=( \ - "render-template-1.0.6-9-linux-${OS_ARCH}-debian-12" \ - "php-8.2.16-2-linux-${OS_ARCH}-debian-12" \ - "apache-2.4.58-7-linux-${OS_ARCH}-debian-12" \ + "render-template-1.0.6-10-linux-${OS_ARCH}-debian-12" \ + "php-8.2.17-0-linux-${OS_ARCH}-debian-12" \ + "apache-2.4.58-8-linux-${OS_ARCH}-debian-12" \ "mysql-client-10.11.7-1-linux-${OS_ARCH}-debian-12" \ - "libphp-8.2.16-1-linux-${OS_ARCH}-debian-12" \ + "libphp-8.2.17-0-linux-${OS_ARCH}-debian-12" \ "phpmyadmin-5.2.1-3-linux-${OS_ARCH}-debian-12" \ ) ; \ for COMPONENT in "${COMPONENTS[@]}"; do \ diff --git a/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json b/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json index a38eeabd999b..9f9a1dd97c1c 100644 --- a/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json +++ b/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json @@ -3,13 +3,13 @@ "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "2.4.58-7" + "version": "2.4.58-8" }, "libphp": { "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "8.2.16-1" + "version": "8.2.17-0" }, "mysql-client": { "arch": "amd64", @@ -21,7 +21,7 @@ "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "8.2.16-2" + "version": "8.2.17-0" }, "phpmyadmin": { "arch": "amd64", @@ -33,6 +33,6 @@ "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "1.0.6-9" + "version": "1.0.6-10" } } \ No newline at end of file diff --git a/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/scripts/libbitnami.sh b/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/scripts/libbitnami.sh index 3853c789b2ea..aa782fc6a4db 100644 --- a/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/scripts/libbitnami.sh +++ b/bitnami/phpmyadmin/5/debian-12/prebuildfs/opt/bitnami/scripts/libbitnami.sh @@ -48,6 +48,7 @@ print_image_welcome_page() { info "${BOLD}Welcome to the Bitnami ${BITNAMI_APP_NAME} container${RESET}" info "Subscribe to project updates by watching ${BOLD}${github_url}${RESET}" info "Submit issues and feature requests at ${BOLD}${github_url}/issues${RESET}" + info "Upgrade to Tanzu Application Catalog for production environments to access custom-configured and pre-packaged software components. Gain enhanced features, including Software Bill of Materials (SBOM), CVE scan result reports, and VEX documents. To learn more, visit ${BOLD}https://bitnami.com/enterprise${RESET}" info "" } diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/apache/conf/deflate.conf b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/apache/conf/deflate.conf index ca9bc1d6e4b6..6016f8fbe582 100644 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/apache/conf/deflate.conf +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/apache/conf/deflate.conf @@ -1,5 +1,5 @@ - AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css + AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript AddOutputFilterByType DEFLATE application/rss+xml diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-env.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-env.sh index 449481062e54..a0c905a9bdcb 100644 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-env.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-env.sh @@ -48,6 +48,7 @@ export WEB_SERVER_TYPE="apache" export APACHE_BASE_DIR="${BITNAMI_ROOT_DIR}/apache" export APACHE_BIN_DIR="${APACHE_BASE_DIR}/bin" export APACHE_CONF_DIR="${APACHE_BASE_DIR}/conf" +export APACHE_DEFAULT_CONF_DIR="${APACHE_BASE_DIR}/conf.default" export APACHE_HTDOCS_DIR="${APACHE_BASE_DIR}/htdocs" export APACHE_TMP_DIR="${APACHE_BASE_DIR}/var/run" export APACHE_LOGS_DIR="${APACHE_BASE_DIR}/logs" diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-modphp/postunpack.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-modphp/postunpack.sh index a415969338cc..3f0c344de235 100755 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-modphp/postunpack.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache-modphp/postunpack.sh @@ -37,3 +37,7 @@ AddType application/x-httpd-php .php DirectoryIndex index.html index.htm index.php EOF ensure_apache_configuration_exists "Include \"${apache_php_conf_file}\"" + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "$APACHE_CONF_DIR"/* "$APACHE_DEFAULT_CONF_DIR" diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/entrypoint.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/entrypoint.sh index dad82feba389..ea643ca0914f 100755 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/entrypoint.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/entrypoint.sh @@ -19,6 +19,12 @@ set -o pipefail print_welcome_page +# We add the copy from default config in the entrypoint to not break users +# bypassing the setup.sh logic. If the file already exists do not overwrite (in +# case someone mounts a configuration file in /opt/bitnami/apache/conf) +debug "Copying files from $APACHE_DEFAULT_CONF_DIR to $APACHE_CONF_DIR" +cp -nr "$APACHE_DEFAULT_CONF_DIR"/. "$APACHE_CONF_DIR" + if [[ "$*" == *"/opt/bitnami/scripts/apache/run.sh"* ]]; then info "** Starting Apache setup **" /opt/bitnami/scripts/apache/setup.sh diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/postunpack.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/postunpack.sh index 6a480ad4ddde..3ea96864d6c0 100755 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/postunpack.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/postunpack.sh @@ -109,7 +109,7 @@ EOF apache_setup_bitnami_config # Ensure non-root user has write permissions on a set of directories -for dir in "$APACHE_TMP_DIR" "$APACHE_CONF_DIR" "$APACHE_LOGS_DIR" "$APACHE_VHOSTS_DIR" "$APACHE_HTACCESS_DIR" "$APACHE_HTDOCS_DIR"; do +for dir in "$APACHE_TMP_DIR" "$APACHE_CONF_DIR" "$APACHE_LOGS_DIR" "$APACHE_VHOSTS_DIR" "$APACHE_HTACCESS_DIR" "$APACHE_HTDOCS_DIR" "$APACHE_DEFAULT_CONF_DIR"; do ensure_dir_exists "$dir" chmod -R g+rwX "$dir" done @@ -125,3 +125,7 @@ ln -sf "/dev/stderr" "${APACHE_LOGS_DIR}/error_log" # Source: https://stackoverflow.com/questions/94445/using-openssl-what-does-unable-to-write-random-state-mean touch /.rnd && chmod g+rw /.rnd + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "$APACHE_CONF_DIR"/* "$APACHE_DEFAULT_CONF_DIR" diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/setup.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/setup.sh index ab451b6c1442..9c758d084f95 100755 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/setup.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/apache/setup.sh @@ -10,6 +10,7 @@ set -o pipefail # set -o xtrace # Uncomment this line for debugging purposes # Load libraries +. /opt/bitnami/scripts/libfs.sh . /opt/bitnami/scripts/liblog.sh . /opt/bitnami/scripts/libapache.sh @@ -22,6 +23,12 @@ apache_validate # Ensure Apache daemon user exists when running as 'root' am_i_root && ensure_user_exists "$APACHE_DAEMON_USER" --group "$APACHE_DAEMON_GROUP" +if ! is_dir_empty "$APACHE_DEFAULT_CONF_DIR"; then + # We add the copy from default config in the initialize function for web applications + # that make use of the Apache setup.sh script + debug "Copying files from $APACHE_DEFAULT_CONF_DIR to $APACHE_CONF_DIR" + cp -nr "$APACHE_DEFAULT_CONF_DIR"/. "$APACHE_CONF_DIR" +fi # Generate SSL certs (without a passphrase) ensure_dir_exists "${APACHE_CONF_DIR}/bitnami/certs" if [[ ! -f "${APACHE_CONF_DIR}/bitnami/certs/server.crt" ]]; then diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/libphp.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/libphp.sh index a107519847f5..369f5ae6b334 100644 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/libphp.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/libphp.sh @@ -59,8 +59,13 @@ php_conf_set() { php_initialize() { # Configure PHP options based on the runtime environment info "Configuring PHP options" + if ! is_dir_empty "$PHP_DEFAULT_CONF_DIR"; then + # Copy default configuration to php configuration directory + cp -nr "$PHP_DEFAULT_CONF_DIR"/. "$PHP_CONF_DIR" + fi php_set_runtime_config "$PHP_CONF_FILE" + # PHP-FPM configuration ! is_empty_value "$PHP_FPM_LISTEN_ADDRESS" && info "Setting PHP-FPM listen option" && php_conf_set "listen" "$PHP_FPM_LISTEN_ADDRESS" "${PHP_CONF_DIR}/php-fpm.d/www.conf" diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php-env.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php-env.sh index 97043106ecb5..669690619be6 100644 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php-env.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php-env.sh @@ -52,6 +52,7 @@ unset php_env_vars export PHP_BASE_DIR="${BITNAMI_ROOT_DIR}/php" export PHP_BIN_DIR="${PHP_BASE_DIR}/bin" export PHP_CONF_DIR="${PHP_BASE_DIR}/etc" +export PHP_DEFAULT_CONF_DIR="${PHP_BASE_DIR}/etc.default" export PHP_TMP_DIR="${PHP_BASE_DIR}/var/run" export PHP_CONF_FILE="${PHP_CONF_DIR}/php.ini" diff --git a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php/postunpack.sh b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php/postunpack.sh index 9a8b9fe2bcd9..762772bf9e10 100755 --- a/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php/postunpack.sh +++ b/bitnami/phpmyadmin/5/debian-12/rootfs/opt/bitnami/scripts/php/postunpack.sh @@ -29,7 +29,7 @@ php_conf_set "upload_tmp_dir" "${PHP_BASE_DIR}/tmp" php_conf_set "session.save_path" "${PHP_TMP_DIR}/session" # Ensure directories used by PHP-FPM exist and have proper ownership and permissions -for dir in "$PHP_CONF_DIR" "${PHP_BASE_DIR}/tmp" "$PHP_TMP_DIR" "$PHP_FPM_LOGS_DIR" "${PHP_TMP_DIR}/session"; do +for dir in "$PHP_CONF_DIR" "$PHP_DEFAULT_CONF_DIR" "${PHP_BASE_DIR}/tmp" "$PHP_TMP_DIR" "$PHP_FPM_LOGS_DIR" "${PHP_TMP_DIR}/session"; do ensure_dir_exists "$dir" chmod -R g+rwX "$dir" done @@ -41,3 +41,7 @@ touch "${PHP_CONF_DIR}/common.conf" # Log to stdout/stderr for easy debugging ln -sf "/dev/stdout" "$PHP_FPM_LOG_FILE" php_conf_set "error_log" "/dev/stderr" + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "$PHP_CONF_DIR"/* "$PHP_DEFAULT_CONF_DIR" diff --git a/bitnami/phpmyadmin/README.md b/bitnami/phpmyadmin/README.md index d5e0e797d671..513a4f9cb429 100644 --- a/bitnami/phpmyadmin/README.md +++ b/bitnami/phpmyadmin/README.md @@ -170,16 +170,31 @@ The `bitnami/phpmyadmin:latest` tag always points to the most recent release. To #### Customizable environment variables -| Name | Description | Default Value | -|----------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------------------| -| `PHPMYADMIN_ALLOW_REMOTE_CONNECTIONS` | Whether to allow remote connections for phpMyAdmin, or force local connections by default. | `$PHPMYADMIN_DEFAULT_ALLOW_REMOTE_CONNECTIONS` | -| `PHPMYADMIN_URL_PREFIX` | URL prefix where phpMyAdmin will be accessible from. | `$PHPMYADMIN_DEFAULT_URL_PREFIX` | -| `DATABASE_SSL_VERIFY` | Enable SSL certificate validation. | `yes` | -| `CONFIGURATION_STORAGE_ENABLE` | Enable phpMyAdmin configuration storage. | `no` | -| `CONFIGURATION_STORAGE_DB_HOST` | phpMyAdmin configuration storage database server hostname. | `mariadb` | -| `CONFIGURATION_STORAGE_DB_PORT_NUMBER` | phpMyAdmin configuration storage database server port. | `3306` | -| `CONFIGURATION_STORAGE_DB_USER` | phpMyAdmin configuration storage database user. | `pma` | -| `CONFIGURATION_STORAGE_DB_NAME` | phpMyAdmin configuration storage database name. | `phpmyadmin` | +| Name | Description | Default Value | +|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------| +| `PHPMYADMIN_ALLOW_ARBITRARY_SERVER` | Whether to enable database server hostname. | `nil` | +| `PHPMYADMIN_ALLOW_REMOTE_CONNECTIONS` | Whether to allow remote connections for phpMyAdmin, or force local connections by default. | `$PHPMYADMIN_DEFAULT_ALLOW_REMOTE_CONNECTIONS` | +| `PHPMYADMIN_ABSOLUTE_URI` | If specified, absolute URL to phpMyAdmin when generating links. | `nil` | +| `DATABASE_HOST` | Database server host. | `nil` | +| `DATABASE_USER` | Database server user. | `nil` | +| `DATABASE_PASSWORD` | Database server password. | `nil` | +| `DATABASE_PORT_NUMBER` | Database server port. | `nil` | +| `DATABASE_ALLOW_NO_PASSWORD` | Whether to allow logins without a password. | `nil` | +| `DATABASE_ENABLE_SSL` | Whether to enable SSL for the connection between phpMyAdmin and the MySQL server to secure the connection. | `nil` | +| `DATABASE_SSL_KEY` | Path to the client key file when using SSL. | `nil` | +| `DATABASE_SSL_CERT` | Path to the client certificate file when using SSL. | `nil` | +| `DATABASE_SSL_CA` | Path to the CA file when using SSL. | `nil` | +| `DATABASE_SSL_CA_PATH` | Directory containing trusted SSL CA certificates in PEM format. | `nil` | +| `DATABASE_SSL_CIPHERS` | List of allowable ciphers for connections when using SSL. | `nil` | +| `DATABASE_SSL_VERIFY` | Enable SSL certificate validation. | `yes` | +| `CONFIGURATION_STORAGE_ENABLE` | Enable phpMyAdmin configuration storage. | `no` | +| `CONFIGURATION_STORAGE_DB_HOST` | phpMyAdmin configuration storage database server hostname. | `mariadb` | +| `CONFIGURATION_STORAGE_DB_PORT_NUMBER` | phpMyAdmin configuration storage database server port. | `3306` | +| `CONFIGURATION_STORAGE_DB_USER` | phpMyAdmin configuration storage database user. | `pma` | +| `CONFIGURATION_STORAGE_DB_PASSWORD` | phpMyAdmin configuration storage database password. | `nil` | +| `CONFIGURATION_STORAGE_DB_NAME` | phpMyAdmin configuration storage database name. | `phpmyadmin` | +| `CONFIGURATION_ALLOWDENY_ORDER` | Set the AllowDeny order. If your rule order is empty, then IP authorization is disabled. Available values are: `deny,allow`, `allow,deny`, `explicit`. | `nil` | +| `CONFIGURATION_ALLOWDENY_RULES` | Array of strings to allow or deny hosts/user to connect to the database. The value must be literal, following the format `allow \| deny [from] `. | `nil` | #### Read-only environment variables @@ -192,13 +207,9 @@ The `bitnami/phpmyadmin:latest` tag always points to the most recent release. To | `PHPMYADMIN_MOUNTED_CONF_FILE` | Mounted configuration file for phpMyAdmin. It will be copied to the phpMyAdmin installation directory during the initialization process. | `${PHPMYADMIN_VOLUME_DIR}/config.inc.php` | | `PHPMYADMIN_DEFAULT_ALLOW_ARBITRARY_SERVER` | Whether to enable database server hostname by default. | `no` | | `PHPMYADMIN_DEFAULT_ALLOW_REMOTE_CONNECTIONS` | Whether to allow remote connections for phpMyAdmin, or force local connections. | `yes` | -| `PHPMYADMIN_DEFAULT_ALLOW_REMOTE_CONNECTIONS` | Whether to allow remote connections for phpMyAdmin, or force local connections. | `no` | -| `PHPMYADMIN_DEFAULT_URL_PREFIX` | Default URL prefix where phpMyAdmin will be accessible from. | `/phpmyadmin` | | `DATABASE_DEFAULT_HOST` | Default database server host. | `mariadb` | -| `DATABASE_DEFAULT_HOST` | Default database server host. | `127.0.0.1` | | `DATABASE_DEFAULT_PORT_NUMBER` | Default database server port. | `3306` | | `DATABASE_DEFAULT_ALLOW_NO_PASSWORD` | Whether to allow logins without a password. | `yes` | -| `DATABASE_DEFAULT_ALLOW_NO_PASSWORD` | Whether to allow logins without a password. | `no` | | `PHP_DEFAULT_UPLOAD_MAX_FILESIZE` | Default max PHP upload file size. | `80M` | | `PHP_DEFAULT_POST_MAX_SIZE` | Default max PHP POST size. | `80M` | | `PHP_DEFAULT_MEMORY_LIMIT` | Default PHP memory limit. | `256M` |