diff --git a/bitnami/couchdb/3/debian-11/Dockerfile b/bitnami/couchdb/3/debian-11/Dockerfile index ba2c48c9e135..963f9f9b2b43 100644 --- a/bitnami/couchdb/3/debian-11/Dockerfile +++ b/bitnami/couchdb/3/debian-11/Dockerfile @@ -6,7 +6,7 @@ ENV HOME="/" \ LABEL org.opencontainers.image.authors="https://bitnami.com/contact" \ org.opencontainers.image.description="Application packaged by Bitnami" \ - org.opencontainers.image.ref.name="3.2.2-debian-11-r30" \ + org.opencontainers.image.ref.name="3.2.2-debian-11-r31" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/couchdb" \ org.opencontainers.image.title="couchdb" \ org.opencontainers.image.vendor="VMware, Inc." \ @@ -16,10 +16,34 @@ COPY prebuildfs / SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Install required system packages and dependencies RUN install_packages acl ca-certificates curl gzip libc6 libgcc-s1 libicu67 libssl1.1 libstdc++6 libtinfo6 procps tar zlib1g -RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "wait-for-port" "1.0.3-154" --checksum 74a09c2208af7316f32ee3ee8479d70b20ad54f1a989e84b6417e23c1f07c147 -RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "ini-file" "1.4.3-153" --checksum 4692a063a41c8382fbf1629f92bb91cc3064d50b25bddeb7e1b299c749e39afd -RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "gosu" "1.14.0-154" --checksum e36c3d90f4fbfbe989f40947fa7c8ab817f12fcf97d3aef893c753a20ce976ab -RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "couchdb" "3.2.2-155" --checksum d6373aad74f24d4a17dfc94528e03807bcd486e68744dc5af919ca203a3ab697 +RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ + if [ ! -f wait-for-port-1.0.3-154-linux-amd64-debian-11.tar.gz ]; then \ + curl -SsLf https://downloads.bitnami.com/files/stacksmith/wait-for-port-1.0.3-154-linux-amd64-debian-11.tar.gz -O ; \ + fi && \ + echo "74a09c2208af7316f32ee3ee8479d70b20ad54f1a989e84b6417e23c1f07c147 wait-for-port-1.0.3-154-linux-amd64-debian-11.tar.gz" | sha256sum -c - && \ + tar -zxf wait-for-port-1.0.3-154-linux-amd64-debian-11.tar.gz -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \ + rm -rf wait-for-port-1.0.3-154-linux-amd64-debian-11.tar.gz +RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ + if [ ! -f ini-file-1.4.3-153-linux-amd64-debian-11.tar.gz ]; then \ + curl -SsLf https://downloads.bitnami.com/files/stacksmith/ini-file-1.4.3-153-linux-amd64-debian-11.tar.gz -O ; \ + fi && \ + echo "4692a063a41c8382fbf1629f92bb91cc3064d50b25bddeb7e1b299c749e39afd ini-file-1.4.3-153-linux-amd64-debian-11.tar.gz" | sha256sum -c - && \ + tar -zxf ini-file-1.4.3-153-linux-amd64-debian-11.tar.gz -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \ + rm -rf ini-file-1.4.3-153-linux-amd64-debian-11.tar.gz +RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ + if [ ! -f gosu-1.14.0-154-linux-amd64-debian-11.tar.gz ]; then \ + curl -SsLf https://downloads.bitnami.com/files/stacksmith/gosu-1.14.0-154-linux-amd64-debian-11.tar.gz -O ; \ + fi && \ + echo "e36c3d90f4fbfbe989f40947fa7c8ab817f12fcf97d3aef893c753a20ce976ab gosu-1.14.0-154-linux-amd64-debian-11.tar.gz" | sha256sum -c - && \ + tar -zxf gosu-1.14.0-154-linux-amd64-debian-11.tar.gz -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \ + rm -rf gosu-1.14.0-154-linux-amd64-debian-11.tar.gz +RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ + if [ ! -f couchdb-3.2.2-155-linux-amd64-debian-11.tar.gz ]; then \ + curl -SsLf https://downloads.bitnami.com/files/stacksmith/couchdb-3.2.2-155-linux-amd64-debian-11.tar.gz -O ; \ + fi && \ + echo "d6373aad74f24d4a17dfc94528e03807bcd486e68744dc5af919ca203a3ab697 couchdb-3.2.2-155-linux-amd64-debian-11.tar.gz" | sha256sum -c - && \ + tar -zxf couchdb-3.2.2-155-linux-amd64-debian-11.tar.gz -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \ + rm -rf couchdb-3.2.2-155-linux-amd64-debian-11.tar.gz RUN apt-get update && apt-get upgrade -y && \ rm -r /var/lib/apt/lists /var/cache/apt/archives RUN chmod g+rwX /opt/bitnami diff --git a/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libcomponent.sh b/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libcomponent.sh deleted file mode 100644 index a7b60696daa6..000000000000 --- a/bitnami/couchdb/3/debian-11/prebuildfs/opt/bitnami/scripts/libcomponent.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -# -# Library for managing Bitnami components - -# Constants -CACHE_ROOT="/tmp/bitnami/pkg/cache" -DOWNLOAD_URL="https://downloads.bitnami.com/files/stacksmith" - -# Functions - -######################## -# Download and unpack a Bitnami package -# Globals: -# OS_NAME -# OS_ARCH -# OS_FLAVOUR -# Arguments: -# $1 - component's name -# $2 - component's version -# Returns: -# None -######################### -component_unpack() { - local name="${1:?name is required}" - local version="${2:?version is required}" - local base_name="${name}-${version}-${OS_NAME}-${OS_ARCH}-${OS_FLAVOUR}" - local package_sha256="" - local directory="/opt/bitnami" - - # Validate arguments - shift 2 - while [ "$#" -gt 0 ]; do - case "$1" in - -c|--checksum) - shift - package_sha256="${1:?missing package checksum}" - ;; - *) - echo "Invalid command line flag $1" >&2 - return 1 - ;; - esac - shift - done - - echo "Downloading $base_name package" - if [ -f "${CACHE_ROOT}/${base_name}.tar.gz" ]; then - echo "${CACHE_ROOT}/${base_name}.tar.gz already exists, skipping download." - cp "${CACHE_ROOT}/${base_name}.tar.gz" . - rm "${CACHE_ROOT}/${base_name}.tar.gz" - if [ -f "${CACHE_ROOT}/${base_name}.tar.gz.sha256" ]; then - echo "Using the local sha256 from ${CACHE_ROOT}/${base_name}.tar.gz.sha256" - package_sha256="$(< "${CACHE_ROOT}/${base_name}.tar.gz.sha256")" - rm "${CACHE_ROOT}/${base_name}.tar.gz.sha256" - fi - else - curl --remote-name --silent --show-error --fail "${DOWNLOAD_URL}/${base_name}.tar.gz" - fi - if [ -n "$package_sha256" ]; then - echo "Verifying package integrity" - echo "$package_sha256 ${base_name}.tar.gz" | sha256sum --check - || return "$?" - fi - tar --directory "${directory}" --extract --gunzip --file "${base_name}.tar.gz" --no-same-owner --strip-components=2 || return "$?" - rm "${base_name}.tar.gz" -} diff --git a/bitnami/couchdb/README.md b/bitnami/couchdb/README.md index a28f88b3043d..b1a594c76e2d 100644 --- a/bitnami/couchdb/README.md +++ b/bitnami/couchdb/README.md @@ -39,7 +39,7 @@ Non-root container images add an extra layer of security and are generally recom 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/). -* [`3`, `3-debian-11`, `3.2.2`, `3.2.2-debian-11-r30`, `latest` (3/debian-11/Dockerfile)](https://github.com/bitnami/containers/blob/main/bitnami/couchdb/3/debian-11/Dockerfile) +* [`3`, `3-debian-11`, `3.2.2`, `3.2.2-debian-11-r31`, `latest` (3/debian-11/Dockerfile)](https://github.com/bitnami/containers/blob/main/bitnami/couchdb/3/debian-11/Dockerfile) Subscribe to project updates by watching the [bitnami/containers GitHub repo](https://github.com/bitnami/containers). @@ -212,46 +212,10 @@ $ docker logs couchdb You can configure the containers [logging driver](https://docs.docker.com/engine/admin/logging/overview/) using the `--log-driver` option if you wish to consume the container logs differently. In the default configuration docker uses the `json-file` driver. -## Understand the structure of this image - -The Bitnami CouchDB Docker image is built using a Dockerfile with the structure below: - -```Dockerfile -FROM bitnami/minideb -... -## Install required system packages and dependencies -RUN install_packages xxx yyy zzz -RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "couchdb" "a.b.c-0" -... -COPY rootfs / -RUN /opt/bitnami/scripts/couchdb/postunpack.sh -... -ENV BITNAMI_APP_NAME="couchdb" ... -VOLUME [ "/bitnami/couchdb" ] -EXPOSE 5984 4369 9100 -USER 1001 -... -ENTRYPOINT [ "/opt/bitnami/scripts/couchdb/entrypoint.sh" ] -CMD [ "/opt/bitnami/scripts/couchdb/run.sh" ] -``` - -The Dockerfile has several sections related to: - -- Components installation -- Components static configuration -- Environment variables -- Ports to be exposed -- User - - Note that once the user is set to 1001, privileged commands cannot be executed any longer. -- Entrypoint and command - - Take into account that these actions are not executed until the container is started. - ## Customize this image The Bitnami CouchDB Docker image is designed to be extended so it can be used as the base image where you can add custom configuration files or other packages. -> Note: Read the [previous section](#understand-the-structure-of-this-image) to understand the Dockerfile structure before extending this image. - ### Extend this image Before extending this image, please note there are certain configuration settings you can modify using the original image: