diff --git a/bitnami/couchdb/3/debian-12/Dockerfile b/bitnami/couchdb/3/debian-12/Dockerfile index 68e5f6395b55..16fe7b78c562 100644 --- a/bitnami/couchdb/3/debian-12/Dockerfile +++ b/bitnami/couchdb/3/debian-12/Dockerfile @@ -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-05-23T07:14:20Z" \ + org.opencontainers.image.created="2026-05-26T07:12:15Z" \ org.opencontainers.image.description="Application packaged by Broadcom, Inc." \ org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/couchdb/README.md" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/couchdb" \ @@ -51,7 +51,7 @@ COPY rootfs / RUN /opt/bitnami/scripts/couchdb/postunpack.sh ENV APP_VERSION="3.5.2" \ BITNAMI_APP_NAME="couchdb" \ - IMAGE_REVISION="5" \ + IMAGE_REVISION="6" \ LD_LIBRARY_PATH="/opt/bitnami/common/lib:$LD_LIBRARY_PATH" \ PATH="/opt/bitnami/common/bin:/opt/bitnami/erlang/bin:/opt/bitnami/couchdb/bin:$PATH" diff --git a/bitnami/couchdb/3/debian-12/prebuildfs/opt/bitnami/scripts/libfile.sh b/bitnami/couchdb/3/debian-12/prebuildfs/opt/bitnami/scripts/libfile.sh index 1c69e0e48a5d..335c1c7c9ef7 100644 --- a/bitnami/couchdb/3/debian-12/prebuildfs/opt/bitnami/scripts/libfile.sh +++ b/bitnami/couchdb/3/debian-12/prebuildfs/opt/bitnami/scripts/libfile.sh @@ -139,3 +139,40 @@ wait_for_log_entry() { return 1 fi } + +######################## +# Creates a secure temporary file containing the provided secret +# Arguments: +# $1 - secret to write to the temporary file +# Returns: +# String +######################### +credential_to_temp_file() { + local secret="$1" + local tmp_file + + # Use mktemp with a specific prefix for easier debugging if something lingers + if ! tmp_file=$(mktemp "${TMPDIR:-/tmp}/at.cred.XXXXXXXX"); then + echo "Error: Failed to create temp file" >&2 + return 1 + fi + + # Restrict permissions before writing the secret + chmod 0600 "$tmp_file" + # Write secret and ensure it's flushed to disk + printf "%s" "$secret" > "$tmp_file" + # Output the filename so the caller can capture it + echo "$tmp_file" +} + +######################## +# Cleans up temporary files created by credential_to_temp_file +# Arguments: +# None +# Returns: +# None +######################### +cleanup_credentials() { + debug "Cleaning up temporary files containing credentials" + rm -rf "${TMPDIR:-/tmp}"/at.cred.* +} diff --git a/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/couchdb/postunpack.sh b/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/couchdb/postunpack.sh index f985bc9cd69d..d983213745a0 100755 --- a/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/couchdb/postunpack.sh +++ b/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/couchdb/postunpack.sh @@ -17,7 +17,7 @@ set -o pipefail . /opt/bitnami/scripts/couchdb-env.sh # Ensure directories used by CouchDB exist -for dir in "$COUCHDB_DATA_DIR" "$COUCHDB_CONF_DIR" "$(dirname "$COUCHDB_CONF_FILE")"; do +for dir in "$COUCHDB_DATA_DIR" "$COUCHDB_CONF_DIR" "$(dirname "$COUCHDB_CONF_FILE")" "$COUCHDB_TMP_DIR"; do ensure_dir_exists "$dir" done @@ -28,6 +28,6 @@ couchdb_vm_args_set "-kernel inet_dist_listen_max" "9100" couchdb_vm_args_set "-name" "couchdb@127.0.0.1" # Ensure directories used by CouchDB have proper permissions -for dir in "$COUCHDB_DATA_DIR" "$COUCHDB_CONF_DIR"; do +for dir in "$COUCHDB_DATA_DIR" "$COUCHDB_CONF_DIR" "$COUCHDB_TMP_DIR"; do chmod -R g+rwX "$dir" done diff --git a/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/libcouchdb.sh b/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/libcouchdb.sh index c2fb931ea364..2d4d7238bc13 100644 --- a/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/libcouchdb.sh +++ b/bitnami/couchdb/3/debian-12/rootfs/opt/bitnami/scripts/libcouchdb.sh @@ -97,12 +97,12 @@ couchdb_initialize() { if is_dir_empty "$COUCHDB_DATA_DIR"; then info "Deploying CouchDB from scratch" + couchdb_start_bg if is_boolean_yes "$COUCHDB_CREATE_DATABASES"; then - couchdb_start_bg couchdb_create_initial_databases fi couchdb_run_init_scripts - is_couchdb_running && couchdb_stop + couchdb_stop else info "Deploying CouchDB with persisted data" fi @@ -311,10 +311,6 @@ couchdb_run_init_scripts() { fi info "Loading user's custom files from ${COUCHDB_INITSCRIPTS_DIR} ..." - if ! is_couchdb_running; then - couchdb_start_bg - fi - for f in "${scripts[@]}"; do if [[ -x "$f" ]]; then debug "Executing $f"