diff --git a/bitnami/owncloud/10/debian-10/Dockerfile b/bitnami/owncloud/10/debian-10/Dockerfile index a3e569df22cb..d11e7dc56375 100644 --- a/bitnami/owncloud/10/debian-10/Dockerfile +++ b/bitnami/owncloud/10/debian-10/Dockerfile @@ -26,7 +26,7 @@ ENV ALLOW_EMPTY_PASSWORD="no" \ APACHE_HTTPS_PORT_NUMBER="443" \ APACHE_HTTP_PORT_NUMBER="80" \ BITNAMI_APP_NAME="owncloud" \ - BITNAMI_IMAGE_VERSION="10.4.1-debian-10-r51" \ + BITNAMI_IMAGE_VERSION="10.4.1-debian-10-r52" \ MARIADB_HOST="mariadb" \ MARIADB_PORT_NUMBER="3306" \ MARIADB_ROOT_PASSWORD="" \ diff --git a/bitnami/owncloud/10/debian-10/rootfs/post-init.d/php.sh b/bitnami/owncloud/10/debian-10/rootfs/post-init.d/php.sh index fb44050dece0..8d76ab8913c9 100755 --- a/bitnami/owncloud/10/debian-10/rootfs/post-init.d/php.sh +++ b/bitnami/owncloud/10/debian-10/rootfs/post-init.d/php.sh @@ -1,21 +1,31 @@ #!/bin/bash # -# Post-init script to execute PHP files +# Executes custom PHP init scripts # shellcheck disable=SC1091 +set -o errexit +set -o nounset +set -o pipefail # set -o xtrace # Uncomment this line for debugging purposes -. /opt/bitnami/base/functions +# Load libraries with logging functions +if [[ -f /opt/bitnami/base/functions ]]; then + . /opt/bitnami/base/functions +else + . /opt/bitnami/scripts/liblog.sh +fi -readonly f="${1:?missing PHP file}" +# Loop through all input files passed via stdin +read -r -a custom_init_scripts <<< "$@" failure=0 +if [[ "${#custom_init_scripts[@]}" -gt 0 ]]; then + for custom_init_script in "${custom_init_scripts[@]}"; do + [[ "$custom_init_script" != *".php" ]] && continue + info "Executing ${custom_init_script} with PHP interpreter" + php "$custom_init_script" || failure=1 + [[ "$failure" -ne 0 ]] && error "Failed to execute ${custom_init_script}" + done +fi -if [[ "$f" == *".php" ]]; then - info "Executing $f with PHP interpreter" - php "$f" || failure=$? -fi -if [[ "$failure" -ne 0 ]]; then - error "Failed to execute ${f}" - exit "$failure" -fi +exit "$failure" diff --git a/bitnami/owncloud/10/debian-10/rootfs/post-init.d/shell.sh b/bitnami/owncloud/10/debian-10/rootfs/post-init.d/shell.sh index e03122ff6f3a..665152ba8b6f 100755 --- a/bitnami/owncloud/10/debian-10/rootfs/post-init.d/shell.sh +++ b/bitnami/owncloud/10/debian-10/rootfs/post-init.d/shell.sh @@ -1,24 +1,37 @@ #!/bin/bash # -# Post-init script to execute Shell files +# Executes custom Bash init scripts -# shellcheck disable=SC1090,SC1091 +# shellcheck disable=SC1090 +# shellcheck disable=SC1091 +set -o errexit +set -o nounset +set -o pipefail # set -o xtrace # Uncomment this line for debugging purposes -. /opt/bitnami/base/functions +# Load libraries with logging functions +if [[ -f /opt/bitnami/base/functions ]]; then + . /opt/bitnami/base/functions +else + . /opt/bitnami/scripts/liblog.sh +fi -readonly f="${1:?missing SHELL file}" +# Loop through all input files passed via stdin +read -r -a custom_init_scripts <<< "$@" failure=0 +if [[ "${#custom_init_scripts[@]}" -gt 0 ]]; then + for custom_init_script in "${custom_init_scripts[@]}"; do + [[ "$custom_init_script" != *".sh" ]] && continue + if [[ -x "$custom_init_script" ]]; then + info "Executing ${custom_init_script}" + "$custom_init_script" || failure="1" + else + info "Sourcing ${custom_init_script} as it is not executable by the current user, any error may cause initialization to fail" + . "$custom_init_script" + fi + [[ "$failure" -ne 0 ]] && error "Failed to execute ${custom_init_script}" + done +fi -if [[ "$f" == *".sh" ]]; then - if [[ -x "$f" ]]; then - info "Executing $f"; "$f" || failure=$? - else - info "Sourcing $f"; . "$f" - fi -fi -if [[ "$failure" -ne 0 ]]; then - error "Failed to execute ${f}" - exit "$failure" -fi +exit "$failure" diff --git a/bitnami/owncloud/10/debian-10/rootfs/post-init.d/sql-mysql.sh b/bitnami/owncloud/10/debian-10/rootfs/post-init.d/sql-mysql.sh index 11b14a25f5bc..f5c8436f2e46 100755 --- a/bitnami/owncloud/10/debian-10/rootfs/post-init.d/sql-mysql.sh +++ b/bitnami/owncloud/10/debian-10/rootfs/post-init.d/sql-mysql.sh @@ -1,29 +1,46 @@ #!/bin/bash # -# Post-init script to execute SQL files with MySQL client +# Executes custom Ruby init scripts # shellcheck disable=SC1091 +set -o errexit +set -o nounset +set -o pipefail # set -o xtrace # Uncomment this line for debugging purposes -. /opt/bitnami/base/functions +# Load libraries with logging functions +if [[ -f /opt/bitnami/base/functions ]]; then + . /opt/bitnami/base/functions +else + . /opt/bitnami/scripts/liblog.sh +fi -readonly f="${1:?missing SQL file}" -failure=0 - -if [[ "$f" =~ ^.*(\.sql|\.sql\.gz)$ ]]; then - info "Executing $f" - mysql_cmd=( mysql -h "$MARIADB_HOST" -P "$MARIADB_PORT_NUMBER" -u "$MARIADB_ROOT_USER" ) +mysql_execute() { + local -r sql_file="${1:?missing file}" + local failure=0 + mysql_cmd=("mysql" "-h" "$MARIADB_HOST" "-P" "$MARIADB_PORT_NUMBER" "-u" "$MARIADB_ROOT_USER") if [[ "${ALLOW_EMPTY_PASSWORD:-no}" != "yes" ]]; then - mysql_cmd+=( -p"$MARIADB_ROOT_PASSWORD" ) + mysql_cmd+=("-p${MARIADB_ROOT_PASSWORD}") fi - if [[ "$f" == *".sql" ]]; then - "${mysql_cmd[@]}" < "$f" || failure=$? - elif [[ "$f" == *".sql.gz" ]]; then - gunzip -c "$f" | "${mysql_cmd[@]}" || failure=$? + if [[ "$sql_file" == *".sql" ]]; then + "${mysql_cmd[@]}" < "$sql_file" || failure=$? + elif [[ "$sql_file" == *".sql.gz" ]]; then + gunzip -c "$sql_file" | "${mysql_cmd[@]}" || failure=$? fi + return "$failure" +} + +# Loop through all input files passed via stdin +read -r -a custom_init_scripts <<< "$@" +failure=0 +if [[ "${#custom_init_scripts[@]}" -gt 0 ]]; then + for custom_init_script in "${custom_init_scripts[@]}"; do + [[ ! "$custom_init_script" =~ ^.*(\.sql|\.sql\.gz)$ ]] && continue + info "Executing ${custom_init_script}" + mysql_execute "$custom_init_script" || failure=1 + [[ "$failure" -ne 0 ]] && error "Failed to execute ${custom_init_script}" + done fi -if [[ "$failure" -ne 0 ]]; then - error "Failed to execute ${f}" - exit "$failure" -fi + +exit "$failure" diff --git a/bitnami/owncloud/10/debian-10/rootfs/post-init.sh b/bitnami/owncloud/10/debian-10/rootfs/post-init.sh old mode 100644 new mode 100755 index 300dfa1bf363..840af85691d3 --- a/bitnami/owncloud/10/debian-10/rootfs/post-init.sh +++ b/bitnami/owncloud/10/debian-10/rootfs/post-init.sh @@ -1,15 +1,23 @@ #!/bin/bash +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail # set -o xtrace # Uncomment this line for debugging purposes -. /opt/bitnami/base/functions - -if [[ -d /docker-entrypoint-init.d ]] && [[ ! -f "/bitnami/owncloud/.user_scripts_initialized" ]]; then - for f in /docker-entrypoint-init.d/*; do - for p in /post-init.d/*.sh; do - "$p" "$f" +# Only execute init scripts once +if [[ ! -f "/bitnami/owncloud/.user_scripts_initialized" ]]; then + read -r -a init_scripts <<< "$(find "/docker-entrypoint-init.d" -type f -print0 | xargs -0)" + if [[ "${#init_scripts[@]}" -gt 0 ]] && [[ ! -f "/bitnami/owncloud/.user_scripts_initialized" ]]; then + mkdir -p "/bitnami/owncloud" + for init_script in "${init_scripts[@]}"; do + for init_script_type_handler in /post-init.d/*.sh; do + "$init_script_type_handler" "$init_script" + done done - done - info "Custom scripts were executed" + fi + touch "/bitnami/owncloud/.user_scripts_initialized" fi diff --git a/bitnami/owncloud/README.md b/bitnami/owncloud/README.md index 4db7c177f238..e5fde72d7bb1 100644 --- a/bitnami/owncloud/README.md +++ b/bitnami/owncloud/README.md @@ -36,7 +36,7 @@ Bitnami containers can be used with [Kubeapps](https://kubeapps.com/) for deploy Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/tutorials/understand-rolling-tags-containers/). -* [`10-debian-10`, `10.4.1-debian-10-r51`, `10`, `10.4.1`, `latest` (10/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-owncloud/blob/10.4.1-debian-10-r51/10/debian-10/Dockerfile) +* [`10-debian-10`, `10.4.1-debian-10-r52`, `10`, `10.4.1`, `latest` (10/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-owncloud/blob/10.4.1-debian-10-r52/10/debian-10/Dockerfile) Subscribe to project updates by watching the [bitnami/owncloud GitHub repo](https://github.com/bitnami/bitnami-docker-owncloud).