bitnami / containers

Bitnami container images
https://bitnami.com
Other
3.4k stars 4.86k forks source link

[bitnami/pgbouncer:1.18.0-debian-11-r33] docker build fails due to missing packages #54752

Closed octopop closed 9 months ago

octopop commented 9 months ago

Name and Version

bitnami/pgbouncer:1.18.0-debian-11-r33

What architecture are you using?

amd64

What steps will reproduce the bug?

We have a production dependency on Bitnami pgbouncer container. Trying to build from Dockerfile bitnami/pgbouncer 1.18 (1.18.0-debian-11-r33).

Build fails as one of the steps requires several packages to be downloaded from https://downloads.bitnami.com/files/stacksmith/ however these packages are no longer available and results in 404

curl: (22) The requested URL returned error: 404 Not Found

Packages:

Relevant code from the Dockerfile

COMPONENTS=( \
        "wait-for-port-1.0.6-2-linux-${OS_ARCH}-debian-11" \
        "postgresql-client-14.7.0-2-linux-${OS_ARCH}-debian-11" \
        "ini-file-1.4.5-2-linux-${OS_ARCH}-debian-11" \
        "gosu-1.16.0-3-linux-${OS_ARCH}-debian-11" \
        "pgbouncer-1.18.0-4-linux-${OS_ARCH}-debian-11" \
    ) && \
    for COMPONENT in "${COMPONENTS[@]}"; do \
        if [ ! -f "${COMPONENT}.tar.gz" ]; then \
            curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz" -O ; \
            curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz.sha256" -O ; \
        fi && \
        sha256sum -c "${COMPONENT}.tar.gz.sha256" && \
        tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \
        rm -rf "${COMPONENT}".tar.gz{,.sha256} ; \
    done

If I try to manually download, I am just redirected to https://www.bitnami.com/.

What is the expected behavior?

The image should build successfully when following the specified instructions.

What do you see instead?

curl: (22) The requested URL returned error: 404 Not Found

Additional information

Per the repository and instructions, https://github.com/bitnami/containers/tree/main/bitnami/pgbouncer, it is unclear at what point Bitnami deprecates old versions -- for instance 1.18 is still available on Bitnami container registry for downloading, however building it fails. Adding this information would be greatly beneficial.

carrodher commented 9 months ago

Sorry for the inconvenience. Those packages should be already available. To help us define our retention policy for those intermediate artifacts, could you please share with us your use case using those old packages instead of the recent versions?

s0ck4t7 commented 9 months ago

@carrodher Hello, I have encountered a similar issue as well. I am using version keycloak-20.0.5. Similarly, during the build process, I encountered several packages that are not available, causing the Dockerfile to fail. Could you please help me resolve this? Thank you.

package: "wait-for-port-1.0.6-1-linux-amd64-debian-11" "java-11.0.18-10-2-linux-amd64-debian-11" "keycloak-20.0.5-1-linux-amd64-debian-11" "gosu-1.16.0-2-linux-amd64-debian-11"

the dockerfile:

RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \
    COMPONENTS=( \
      "wait-for-port-1.0.6-1-linux-${OS_ARCH}-debian-11" \
      "java-11.0.18-10-2-linux-${OS_ARCH}-debian-11" \
      "keycloak-20.0.5-1-linux-${OS_ARCH}-debian-11" \
      "gosu-1.16.0-2-linux-${OS_ARCH}-debian-11" \
    ) && \
    for COMPONENT in "${COMPONENTS[@]}"; do \
      if [ ! -f "${COMPONENT}.tar.gz" ]; then \
        curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz" -O ; \
        curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz.sha256" -O ; \
      fi && \
      sha256sum -c "${COMPONENT}.tar.gz.sha256" && \
      tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \
      rm -rf "${COMPONENT}".tar.gz{,.sha256} ; \
    done
carrodher commented 9 months ago

@carrodher Hello, I have encountered a similar issue as well. I am using version keycloak-20.0.5. Similarly, during the build process, I encountered several packages that are not available, causing the Dockerfile to fail. Could you please help me resolve this? Thank you.

package: "wait-for-port-1.0.6-1-linux-amd64-debian-11" "java-11.0.18-10-2-linux-amd64-debian-11" "keycloak-20.0.5-1-linux-amd64-debian-11" "gosu-1.16.0-2-linux-amd64-debian-11"

the dockerfile:

RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \
    COMPONENTS=( \
      "wait-for-port-1.0.6-1-linux-${OS_ARCH}-debian-11" \
      "java-11.0.18-10-2-linux-${OS_ARCH}-debian-11" \
      "keycloak-20.0.5-1-linux-${OS_ARCH}-debian-11" \
      "gosu-1.16.0-2-linux-${OS_ARCH}-debian-11" \
    ) && \
    for COMPONENT in "${COMPONENTS[@]}"; do \
      if [ ! -f "${COMPONENT}.tar.gz" ]; then \
        curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz" -O ; \
        curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz.sha256" -O ; \
      fi && \
      sha256sum -c "${COMPONENT}.tar.gz.sha256" && \
      tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \
      rm -rf "${COMPONENT}".tar.gz{,.sha256} ; \
    done

We just recovered those files as well. To understand the different use cases and set a proper retention policy, could you please elaborate the why are you building the container image by yourselves instead of using the already built and published in DockerHub? Is there any reason to use those old versions instead of the latest ones?

s0ck4t7 commented 9 months ago

@carrodher Hello, I have encountered a similar issue as well. I am using version keycloak-20.0.5. Similarly, during the build process, I encountered several packages that are not available, causing the Dockerfile to fail. Could you please help me resolve this? Thank you. package: "wait-for-port-1.0.6-1-linux-amd64-debian-11" "java-11.0.18-10-2-linux-amd64-debian-11" "keycloak-20.0.5-1-linux-amd64-debian-11" "gosu-1.16.0-2-linux-amd64-debian-11" the dockerfile:

RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \
    COMPONENTS=( \
      "wait-for-port-1.0.6-1-linux-${OS_ARCH}-debian-11" \
      "java-11.0.18-10-2-linux-${OS_ARCH}-debian-11" \
      "keycloak-20.0.5-1-linux-${OS_ARCH}-debian-11" \
      "gosu-1.16.0-2-linux-${OS_ARCH}-debian-11" \
    ) && \
    for COMPONENT in "${COMPONENTS[@]}"; do \
      if [ ! -f "${COMPONENT}.tar.gz" ]; then \
        curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz" -O ; \
        curl -SsLf "https://downloads.bitnami.com/files/stacksmith/${COMPONENT}.tar.gz.sha256" -O ; \
      fi && \
      sha256sum -c "${COMPONENT}.tar.gz.sha256" && \
      tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner --wildcards '*/files' && \
      rm -rf "${COMPONENT}".tar.gz{,.sha256} ; \
    done

We just recovered those files as well. To understand the different use cases and set a proper retention policy, could you please elaborate the why are you building the container image by yourselves instead of using the already built and published in DockerHub? Is there any reason to use those old versions instead of the latest ones?

We use some custom SPI and themes in it.We are not constantly upgrading to keep up with the latest version.This will take some time and we will need to test before upgrading.Thanks again.

carrodher commented 9 months ago

Thanks for the info! I guess we can close this ticket now since the different components were recovered.

octopop commented 9 months ago

To help us define our retention policy for those intermediate artifacts, could you please share with us your use case using those old packages instead of the recent versions?

@carrodher Like most things in production we try and upgrade major versions only, and that too with pressing security updates. We try and keep up but as you can imagine, keeping every sub-system up-to-date is financially infeasible. We expect that we can at least go 2 years without updating something.

In this instance, we had built an deployed pgBouncer Bitnami package about 10-11 months back and when trying to re-build it was a bit disappointing that the binaries already don't exist.

Instead of us dictating your retention; if you have a published retention policy then I would like to design for it, or around it.

carrodher commented 9 months ago

Thanks for your inputs, we are working on defining a policy which will be communicated once it's considered definitive.