diff options
| -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)  | 
