diff options
author | crupest <crupest@outlook.com> | 2022-11-23 20:40:34 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-11-23 20:40:34 +0800 |
commit | ea89f67879ac335d98b3bf31c06cb78c53b581a0 (patch) | |
tree | dd4438376c8c96df4355a96bd3860795c2db5566 | |
parent | 324bcb621ad29f22041eed970ae4eee965d61592 (diff) | |
download | crupest-ea89f67879ac335d98b3bf31c06cb78c53b581a0.tar.gz crupest-ea89f67879ac335d98b3bf31c06cb78c53b581a0.tar.bz2 crupest-ea89f67879ac335d98b3bf31c06cb78c53b581a0.zip |
Use coscmd instead of coscli.
-rw-r--r-- | docker/auto-backup/Dockerfile | 16 | ||||
-rwxr-xr-x | docker/auto-backup/daemon.bash | 11 | ||||
-rwxr-xr-x | docker/auto-backup/install-coscli.bash | 17 | ||||
-rwxr-xr-x | tool/aio.py | 16 |
4 files changed, 14 insertions, 46 deletions
diff --git a/docker/auto-backup/Dockerfile b/docker/auto-backup/Dockerfile index be3a6cf..7bf4b2d 100644 --- a/docker/auto-backup/Dockerfile +++ b/docker/auto-backup/Dockerfile @@ -1,10 +1,5 @@ -FROM alpine:latest AS coscli-downloader -RUN apk add --no-cache bash curl jq -COPY install-coscli.bash /install-coscli.bash -RUN /install-coscli.bash - FROM alpine:latest -RUN apk add --no-cache coreutils bash tar xz +RUN apk add --no-cache coreutils bash tar xz python3 ARG CRUPEST_AUTO_BACKUP_INIT_DELAY=0 ARG CRUPEST_AUTO_BACKUP_INTERVAL=1d ARG CRUPEST_AUTO_BACKUP_COS_SECRET_ID @@ -17,8 +12,13 @@ ENV CRUPEST_AUTO_BACKUP_COS_SECRET_ID=${CRUPEST_AUTO_BACKUP_COS_SECRET_ID} ENV CRUPEST_AUTO_BACKUP_COS_SECRET_KEY=${CRUPEST_AUTO_BACKUP_COS_SECRET_KEY} ENV CRUPEST_AUTO_BACKUP_COS_REGION=${CRUPEST_AUTO_BACKUP_COS_REGION} ENV CRUPEST_AUTO_BACKUP_BUCKET_NAME=${CRUPEST_AUTO_BACKUP_BUCKET_NAME} -COPY --from=coscli-downloader /coscli /coscli +# install pip and coscmd +RUN python3 -m ensurepip && \ + rm -r /usr/lib/python*/ensurepip && \ + pip3 install --upgrade pip setuptools && \ + pip3 install coscmd && \ + rm -r /root/.cache COPY daemon.bash /daemon.bash -VOLUME [ "/data", "/root/.cos.yaml" ] +VOLUME [ "/data" ] STOPSIGNAL SIGINT ENTRYPOINT [ "/daemon.bash" ] diff --git a/docker/auto-backup/daemon.bash b/docker/auto-backup/daemon.bash index 6c6dc19..f425d10 100755 --- a/docker/auto-backup/daemon.bash +++ b/docker/auto-backup/daemon.bash @@ -8,15 +8,14 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi -/coscli --version -# Check xz and tar +# Check xz, tar and coscmd xz --version tar --version +coscmd --version # do not echo next command -/coscli config set --secret_id "${CRUPEST_AUTO_BACKUP_COS_SECRET_ID}" --secret_key "${CRUPEST_AUTO_BACKUP_COS_SECRET_KEY}" -/coscli config add --alias "crupest-backup" --bucket "${CRUPEST_AUTO_BACKUP_BUCKET_NAME}" --region "${CRUPEST_AUTO_BACKUP_COS_REGION}" +coscmd config -a "${CRUPEST_AUTO_BACKUP_COS_SECRET_ID}" -s "${CRUPEST_AUTO_BACKUP_COS_SECRET_KEY}" -b "${CRUPEST_AUTO_BACKUP_BUCKET_NAME}" -r "${CRUPEST_AUTO_BACKUP_COS_REGION}" function backup { # Output "Begin backup..." in yellow and restore default @@ -33,13 +32,13 @@ function backup { # Output /tmp/data.tar.xz size du -h /tmp/data.tar.xz | cut -f1 | xargs echo "Size of data.tar.xz:" - destination="cos://crupest-backup/$current_time.tar.xz" + destination="$current_time.tar.xz" echo "Use coscli to upload data to $destination ..." echo "Bucket name: ${CRUPEST_AUTO_BACKUP_BUCKET_NAME}" echo "Bucket region: ${CRUPEST_AUTO_BACKUP_COS_REGION}" # upload to remote - /coscli cp /tmp/data.tar.xz "$destination" + coscmd upload /tmp/data.tar.xz "$destination" echo "Remove tmp file..." # remove tmp diff --git a/docker/auto-backup/install-coscli.bash b/docker/auto-backup/install-coscli.bash deleted file mode 100755 index d3a45b0..0000000 --- a/docker/auto-backup/install-coscli.bash +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Check I'm root. -if [[ $EUID -ne 0 ]]; then - echo "This script must be run as root" 1>&2 - exit 1 -fi - -download_url=$(curl -s https://api.github.com/repos/tencentyun/coscli/releases/latest | jq -r ".assets[] | select(.name | test(\"coscli-linux\")) | .browser_download_url") - -curl -L -o /coscli "$download_url" - -chmod +x /coscli - -/coscli --version diff --git a/tool/aio.py b/tool/aio.py index a487228..00ae596 100755 --- a/tool/aio.py +++ b/tool/aio.py @@ -91,19 +91,6 @@ def check_domain_is_defined() -> str: exit(1) -def get_coscli_download_url() -> str: - request = urllib.request.urlopen( - "https://api.github.com/repos/tencentyun/coscli/releases/latest") - response = request.read() - # parse with json - data = json.loads(response) - assets = data["assets"] - for asset in assets: - if asset["name"] == "coscli-linux": - return asset["browser_download_url"] - raise ValueError("Cannot find coscli-linux in the latest release.") - - def download_tools(): # if we are not linux, we prompt the user if sys.platform != "linux": @@ -113,8 +100,7 @@ def download_tools(): exit(0) SCRIPTS = [("docker-mailserver setup script", "docker-mailserver-setup.sh", - "https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/setup.sh"), - ("coscli", "coscli", get_coscli_download_url)] + "https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/setup.sh")] for index, script in enumerate(SCRIPTS): number = index + 1 total = len(SCRIPTS) |