diff --git a/bitnami/couchdb/3/debian-11/Dockerfile b/bitnami/couchdb/3/debian-11/Dockerfile index d5126baa3afe..ad7c6ec30525 100644 --- a/bitnami/couchdb/3/debian-11/Dockerfile +++ b/bitnami/couchdb/3/debian-11/Dockerfile @@ -3,10 +3,10 @@ FROM docker.io/bitnami/minideb:bullseye ARG TARGETARCH LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bullseye" \ - org.opencontainers.image.created="2023-03-01T20:57:10Z" \ + org.opencontainers.image.created="2023-03-04T21:29:42Z" \ org.opencontainers.image.description="Application packaged by VMware, Inc" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.ref.name="3.3.1-debian-11-r17" \ + org.opencontainers.image.ref.name="3.3.1-debian-11-r18" \ org.opencontainers.image.title="couchdb" \ org.opencontainers.image.vendor="VMware, Inc." \ org.opencontainers.image.version="3.3.1" diff --git a/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh b/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh index af64e198ad2d..2d53aca9af84 100644 --- a/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh +++ b/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libservice.sh @@ -277,16 +277,21 @@ remove_logrotate_conf() { # Arguments: # $1 - Service name # Flags: +# --custom-service-content - Custom content to add to the [service] block +# --environment - Environment variable to define (multiple --environment options may be passed) +# --environment-file - Text file with environment variables # --exec-start - Start command (required) # --exec-stop - Stop command (optional) # --exec-reload - Reload command (optional) +# --group - System group to start the service with # --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) +# --pid-file - Service PID file +# --standard-output - File where to print stdout output +# --standard-error - File where to print stderr output +# --success-exit-status - Exit code that indicates a successful shutdown # --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 ######################### @@ -300,6 +305,7 @@ generate_systemd_conf() { local user="" local group="" local environment="" + local environment_file="" local exec_start="" local exec_stop="" local exec_reload="" @@ -307,6 +313,9 @@ generate_systemd_conf() { local pid_file="" local standard_output="journal" local standard_error="" + local limits_content="" + local success_exit_status="" + local custom_service_content="" # Parse CLI flags shift while [[ "$#" -gt 0 ]]; do @@ -315,6 +324,7 @@ generate_systemd_conf() { | --type \ | --user \ | --group \ + | --environment-file \ | --exec-start \ | --exec-stop \ | --exec-reload \ @@ -322,10 +332,18 @@ generate_systemd_conf() { | --pid-file \ | --standard-output \ | --standard-error \ + | --success-exit-status \ + | --custom-service-content \ ) var_name="$(echo "$1" | sed -e "s/^--//" -e "s/-/_/g")" shift - declare "$var_name"="${1:?"$var_name" is missing}" + declare "$var_name"="${1:?"${var_name} value is missing"}" + ;; + --limit-*) + [[ -n "$limits_content" ]] && limits_content+=$'\n' + var_name="${1//--limit-}" + shift + limits_content+="Limit${var_name^^}=${1:?"--limit-${var_name} value is missing"}" ;; --environment) shift @@ -346,10 +364,6 @@ generate_systemd_conf() { 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 @@ -382,10 +396,16 @@ EOF if [[ -n "$pid_file" ]]; then cat >> "$service_file" <<< "PIDFile=${pid_file}" fi + if [[ -n "$restart" ]]; then + cat >> "$service_file" <<< "Restart=${restart}" + fi # Environment flags (may be specified multiple times in a unit) if [[ -n "$environment" ]]; then cat >> "$service_file" <<< "$environment" fi + if [[ -n "$environment_file" ]]; then + cat >> "$service_file" <<< "EnvironmentFile=${environment_file}" + fi # Logging if [[ -n "$standard_output" ]]; then cat >> "$service_file" <<< "StandardOutput=${standard_output}" @@ -393,14 +413,28 @@ EOF if [[ -n "$standard_error" ]]; then cat >> "$service_file" <<< "StandardError=${standard_error}" fi + if [[ -n "$custom_service_content" ]]; then + cat >> "$service_file" <<< "$custom_service_content" + fi + if [[ -n "$success_exit_status" ]]; then + cat >> "$service_file" <> "$service_file" <> "$service_file" <> "$service_file" <