From 78a956b90fd160bd8b5dccb4f5f86d644a0bb367 Mon Sep 17 00:00:00 2001 From: chao sun Date: Thu, 11 Jan 2024 15:30:04 +1100 Subject: [PATCH 1/4] Upgrade base image to alpine 3.19 and awscli v2.13.25 --- Dockerfile | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6fac133..80bf0eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.18 +FROM alpine:3.19 RUN set -x \ && apk add --update bash findutils mariadb-client gzip bzip2 lz4 xz unzip zip coreutils python3 rsync curl \ @@ -7,8 +7,8 @@ RUN set -x \ # Install Gcloud SDK (required for gsutil workload identity authentication) ENV \ - GCLOUD_VERSION=432.0.0 \ - GCLOUD_CHECKSUM=b24ba27d57463e08db859b7941cf4d7c33cb3af5865095639e3e0b2055cbec66 + GCLOUD_VERSION=459.0.0 \ + GCLOUD_CHECKSUM=c7c02262cded63dc2f017aecfe71532da3712ab1b0a8f8d217dc42bcba259de8 RUN set -x \ && apk --no-cache add python3 \ @@ -26,21 +26,10 @@ RUN set -x \ ENV \ PYTHONIOENCODING=UTF-8 \ PYTHONUNBUFFERED=0 \ - PAGER=more \ - AWS_CLI_VERSION=1.27.141 \ - AWS_CLI_CHECKSUM=6fd0b48812f8093b9328600ac86c453d8fce30408456dc78603c18404795e16a + PAGER=more 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 unzip \ - && rm -rf /var/cache/apk/* \ - && rm -rf /tmp/* \ + && apk --update add --no-cache ca-certificates aws-cli \ ; COPY commands /commands From 78cab28cb166f30e2dc990f4931d668e6f969253 Mon Sep 17 00:00:00 2001 From: chao sun Date: Thu, 11 Jan 2024 16:11:10 +1100 Subject: [PATCH 2/4] Add ENV AWS_DEFAULT_REGION to fix the bug --- tests/test.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test.sh b/tests/test.sh index d7b4577..8621afd 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -64,9 +64,9 @@ echo "=> Test load command" docker run -d --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password ${MARIADB_IMAGE}:${MARIADB_TAG} > /dev/null docker run -d --name minio -p 9000:9000 ${MINIO_IMAGE}:${MINIO_TAG} server /data > /dev/null docker run --rm -i --link minio -e MC_HOST_minio=http://minioadmin:minioadmin@minio:9000 minio/mc:latest --quiet mb minio/backup -docker run -i --name ${TEST_NAME}-save --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER save --host mariadb --password password s3://backup -docker run -i --name ${TEST_NAME}-load1 --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER load --host mariadb --password password s3://backup/ mysql newdb -docker run -i --name ${TEST_NAME}-load2 --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER load --host mariadb --password password s3://backup/202 mysql newdb +docker run -i --name ${TEST_NAME}-save --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_DEFAULT_REGION=ap-southeast-2 -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER save --host mariadb --password password s3://backup +docker run -i --name ${TEST_NAME}-load1 --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_DEFAULT_REGION=ap-southeast-2 -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER load --host mariadb --password password s3://backup/ mysql newdb +docker run -i --name ${TEST_NAME}-load2 --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_DEFAULT_REGION=ap-southeast-2 -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER load --host mariadb --password password s3://backup/202 mysql newdb cleanup mariadb minio ${TEST_NAME}-save ${TEST_NAME}-load1 ${TEST_NAME}-load2 echo "=> Test mysql command" @@ -78,5 +78,5 @@ echo "=> Test save command" docker run -d --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password ${MARIADB_IMAGE}:${MARIADB_TAG} > /dev/null docker run -d --name minio -p 9000:9000 ${MINIO_IMAGE}:${MINIO_TAG} server /data > /dev/null docker run --rm -i --link minio -e MC_HOST_minio=http://minioadmin:minioadmin@minio:9000 minio/mc:latest --quiet mb minio/backup -docker run -i --name $TEST_NAME --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER save --host mariadb --password password s3://backup +docker run -i --name $TEST_NAME --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin AWS_DEFAULT_REGION=ap-southeast-2 -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER save --host mariadb --password password s3://backup cleanup mariadb minio $TEST_NAME From be7d410247b60f72230c7afdbdc5728b99ec81a7 Mon Sep 17 00:00:00 2001 From: chao sun Date: Thu, 11 Jan 2024 16:13:24 +1100 Subject: [PATCH 3/4] Fix typo --- tests/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test.sh b/tests/test.sh index 8621afd..7e4c213 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -78,5 +78,5 @@ echo "=> Test save command" docker run -d --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password ${MARIADB_IMAGE}:${MARIADB_TAG} > /dev/null docker run -d --name minio -p 9000:9000 ${MINIO_IMAGE}:${MINIO_TAG} server /data > /dev/null docker run --rm -i --link minio -e MC_HOST_minio=http://minioadmin:minioadmin@minio:9000 minio/mc:latest --quiet mb minio/backup -docker run -i --name $TEST_NAME --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin AWS_DEFAULT_REGION=ap-southeast-2 -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER save --host mariadb --password password s3://backup +docker run -i --name $TEST_NAME --link mariadb --link minio -e AWS_ACCESS_KEY_ID=minioadmin -e AWS_SECRET_ACCESS_KEY=minioadmin -e AWS_DEFAULT_REGION=ap-southeast-2 -e AWS_S3_ADDITIONAL_ARGS="--endpoint-url http://minio:9000" $TEST_CONTAINER save --host mariadb --password password s3://backup cleanup mariadb minio $TEST_NAME From 779c7a26edd084455903e6b10875805890e1fa3c Mon Sep 17 00:00:00 2001 From: chao sun Date: Fri, 12 Jan 2024 15:05:02 +1100 Subject: [PATCH 4/4] Move aws-cli to main package install --- Dockerfile | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 80bf0eb..0f1f3c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,12 @@ FROM alpine:3.19 +ENV \ + PYTHONIOENCODING=UTF-8 \ + PYTHONUNBUFFERED=0 \ + PAGER=more + RUN set -x \ - && apk add --update bash findutils mariadb-client gzip bzip2 lz4 xz unzip zip coreutils python3 rsync curl \ + && apk add --update bash findutils mariadb-client gzip bzip2 lz4 xz unzip zip coreutils python3 rsync curl ca-certificates aws-cli \ && rm -rf /var/cache/apk/* \ ; @@ -22,16 +27,6 @@ RUN set -x \ && rm -rf /tmp/* /root/.config/gcloud \ ; -# Install AWS CLI -ENV \ - PYTHONIOENCODING=UTF-8 \ - PYTHONUNBUFFERED=0 \ - PAGER=more - -RUN set -x \ - && apk --update add --no-cache ca-certificates aws-cli \ - ; - COPY commands /commands ENTRYPOINT ["/commands/entry.sh"]