diff --git a/Dockerfile b/Dockerfile index e250c48..c93af7c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,16 @@ -FROM alpine:3.17 +FROM alpine:3.22 # Install some tools # python is required for gsutil RUN set -x \ - && apk add --update bash findutils postgresql-client gzip bzip2 lz4 xz unzip zip coreutils python3 rsync curl \ + && apk add --update bash findutils postgresql-client gzip bzip2 lz4 xz unzip zip coreutils python3 rsync curl aws-cli \ && rm -rf /var/cache/apk/* \ ; # Install Panubo bash-container RUN set -x \ - && BASHCONTAINER_VERSION=0.7.2 \ - && BASHCONTAINER_SHA256=87c4b804f0323d8f0856cb4fbf2f7859174765eccc8b0ac2d99b767cecdcf5c6 \ + && BASHCONTAINER_VERSION=0.8.0 \ + && BASHCONTAINER_SHA256=0ddc93b11fd8d6ac67f6aefbe4ba790550fc98444e051e461330f10371a877f1 \ && if [ -n "$(readlink /usr/bin/wget)" ]; then \ fetchDeps="${fetchDeps} wget"; \ fi \ @@ -24,61 +24,30 @@ RUN set -x \ && apk del ${fetchDeps} \ ; -# ENV \ -# GSUTIL_VERSION=4.46 \ -# GSUTIL_CHECKSUM=bb319cc49d74cf12b692748d498abc63e6098750fb6e36cff71eebf71ec895e0 \ -# CLOUDSDK_GSUTIL_PYTHON=python3 \ -# CLOUDSDK_PYTHON=python3 -# -# # Install gsutil -# RUN set -x \ -# && mkdir -p /opt \ -# && curl -o /tmp/gsutil_${GSUTIL_VERSION}.tar.gz "https://storage.googleapis.com/pub/gsutil_${GSUTIL_VERSION}.tar.gz" \ -# && echo "${GSUTIL_CHECKSUM} gsutil_${GSUTIL_VERSION}.tar.gz" > /tmp/SHA256SUM \ -# && ( cd /tmp; sha256sum -c SHA256SUM; ) \ -# && tar -C /opt -zxf /tmp/gsutil_${GSUTIL_VERSION}.tar.gz \ -# && ln -s /opt/gsutil/gsutil /usr/local/bin/gsutil \ -# && rm -f /tmp/* \ -# && find /opt ! -group 0 -exec chgrp -h 0 {} \; \ -# ; - # Install Gcloud SDK (required for gsutil workload identity authentication) ENV \ - GCLOUD_VERSION=424.0.0 \ - GCLOUD_CHECKSUM=1fed39626f23352e0f97623d5009ff1bb6c4ffd3875c85f4205f309292696b18 - -RUN set -x \ - && apk --no-cache add python3 \ - && curl -o /tmp/google-cloud-sdk-${GCLOUD_VERSION}-linux-x86_64.tar.gz -L https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${GCLOUD_VERSION}-linux-x86_64.tar.gz \ - && echo "${GCLOUD_CHECKSUM} google-cloud-sdk-${GCLOUD_VERSION}-linux-x86_64.tar.gz" > /tmp/SHA256SUM \ - && ( cd /tmp; sha256sum -c SHA256SUM || ( echo "Expected $(sha256sum google-cloud-sdk-${GCLOUD_VERSION}-linux-x86_64.tar.gz)"; exit 1; )) \ - && tar -C / -zxvf /tmp/google-cloud-sdk-${GCLOUD_VERSION}-linux-x86_64.tar.gz \ - && /google-cloud-sdk/install.sh --quiet \ - && ln -s /google-cloud-sdk/bin/gcloud /usr/local/bin/ \ - && ln -s /google-cloud-sdk/bin/gsutil /usr/local/bin/ \ - && rm -rf /tmp/* /root/.config/gcloud \ - ; - -# Install AWS CLI -ENV \ - PYTHONIOENCODING=UTF-8 \ - PYTHONUNBUFFERED=0 \ - PAGER=more \ - AWS_CLI_VERSION=1.27.103 \ - AWS_CLI_CHECKSUM=0fed454146160807e273c4fd9bb1d0ba0926e3fb8ed3fc55e9251ebd2d53407c + GCLOUD_VERSION=542.0.0 \ + GCLOUD_CHECKSUM_X86_64=6ac032650f507e61cf0b68a462be7e97edc9352cb3b95ce9a0d32cd8a4cfdfd5 \ + GCLOUD_CHECKSUM_AARCH64=6b732c2e38da8d03395688fd4460b6d28a63a6d6d140836f4ecc1eee198be5e7 +# Install Gcloud SDK RUN set -x \ - && apk --update add --no-cache ca-certificates wget unzip \ - && cd /tmp \ - && wget -nv https://s3.amazonaws.com/aws-cli/awscli-bundle-${AWS_CLI_VERSION}.zip -O /tmp/awscli-bundle-${AWS_CLI_VERSION}.zip \ - && echo "${AWS_CLI_CHECKSUM} awscli-bundle-${AWS_CLI_VERSION}.zip" > /tmp/SHA256SUM \ - && ( cd /tmp; sha256sum -c SHA256SUM || ( echo "Expected $(sha256sum awscli-bundle-${AWS_CLI_VERSION}.zip)"; exit 1; )) \ - && unzip awscli-bundle-${AWS_CLI_VERSION}.zip \ - && /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws \ - && apk del wget \ - && rm -rf /var/cache/apk/* \ - && rm -rf /tmp/* \ - ; +&& if [ "$(uname -m)" = "x86_64" ] ; then \ + GCLOUD_CHECKSUM="${GCLOUD_CHECKSUM_X86_64}"; \ + ARCH="x86_64"; \ + elif [ "$(uname -m)" = "aarch64" ]; then \ + GCLOUD_CHECKSUM="${GCLOUD_CHECKSUM_AARCH64}"; \ + ARCH="arm"; \ + fi \ +&& curl -o /tmp/google-cloud-sdk-${GCLOUD_VERSION}-linux-${ARCH}.tar.gz -L https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${GCLOUD_VERSION}-linux-${ARCH}.tar.gz \ +&& echo "${GCLOUD_CHECKSUM} google-cloud-sdk-${GCLOUD_VERSION}-linux-${ARCH}.tar.gz" > /tmp/SHA256SUM \ +&& ( cd /tmp; sha256sum -c SHA256SUM || ( echo "Expected $(sha256sum google-cloud-sdk-${GCLOUD_VERSION}-linux-${ARCH}.tar.gz)"; exit 1; )) \ +&& tar -C / -zxvf /tmp/google-cloud-sdk-${GCLOUD_VERSION}-linux-${ARCH}.tar.gz \ +&& /google-cloud-sdk/install.sh --quiet \ +&& ln -s /google-cloud-sdk/bin/gcloud /usr/local/bin/ \ +&& ln -s /google-cloud-sdk/bin/gsutil /usr/local/bin/ \ +&& rm -rf /tmp/* /root/.config/gcloud \ +; COPY commands /usr/local/bin/ diff --git a/tests/test_functions.bash b/tests/test_functions.bash index 517d35f..53d41bc 100644 --- a/tests/test_functions.bash +++ b/tests/test_functions.bash @@ -1,5 +1,5 @@ TOOLBOX_IMAGE="panubo/postgres-toolbox:latest" -POSTGRES_TARGET_VERSION="14.7" +POSTGRES_TARGET_VERSION="17" diag() { echo "$@" | sed -e 's/^/# /' >&3 ;