From e970fb98aa5d7aa9cc75185b002544f7647a505a Mon Sep 17 00:00:00 2001 From: xiao Date: Tue, 7 Jan 2025 16:13:36 +0800 Subject: [PATCH] chore: enable multi-architecture build and push in .cnb.yml and add backup/restore functions in bt.sh --- .cnb.yml | 138 +++++++++++++++++++++++++++---------------------------- bt.sh | 21 +++++++++ 2 files changed, 90 insertions(+), 69 deletions(-) diff --git a/.cnb.yml b/.cnb.yml index b876f02..8d2d639 100644 --- a/.cnb.yml +++ b/.cnb.yml @@ -6,77 +6,77 @@ $: build: dockerfile: .ide/Dockerfile push: - # - runner: - # tags: cnb:arch:amd64 - # services: - # - docker - # imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml - # env: - # IMAGE_TAG: btpanel/baota:slim-linux-amd64 - # stages: - # - name: docker login - # script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD" - # - name: docker build - # script: docker build -t ${IMAGE_TAG} . - # - name: docker push - # script: docker push ${IMAGE_TAG} - # - name: resolve - # type: cnb:resolve - # options: - # key: build-amd64 + - runner: + tags: cnb:arch:amd64 + services: + - docker + imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml + env: + IMAGE_TAG: btpanel/baota:slim-linux-amd64 + stages: + - name: docker login + script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD" + - name: docker build + script: docker build -t ${IMAGE_TAG} . + - name: docker push + script: docker push ${IMAGE_TAG} + - name: resolve + type: cnb:resolve + options: + key: build-amd64 - # - runner: - # tags: cnb:arch:arm64:v8 - # services: - # - docker - # imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml - # env: - # IMAGE_TAG: btpanel/baota:slim-linux-arm64 - # stages: - # - name: docker login - # script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD" - # - name: docker build - # script: docker build -t ${IMAGE_TAG} . - # - name: docker push - # script: docker push ${IMAGE_TAG} - # - name: resolve - # type: cnb:resolve - # options: - # key: build-arm64 + - runner: + tags: cnb:arch:arm64:v8 + services: + - docker + imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml + env: + IMAGE_TAG: btpanel/baota:slim-linux-arm64 + stages: + - name: docker login + script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD" + - name: docker build + script: docker build -t ${IMAGE_TAG} . + - name: docker push + script: docker push ${IMAGE_TAG} + - name: resolve + type: cnb:resolve + options: + key: build-arm64 - # - services: - # - docker - # imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml - # env: - # IMAGE_TAG: btpanel/baota:slim - # stages: - # - name: await the amd64 - # type: cnb:await - # options: - # key: build-amd64 - # - name: await the arm64 - # type: cnb:await - # options: - # key: build-arm64 - # - name: manifest - # image: cnbcool/manifest - # settings: - # username: $DOCKER_USERNAME - # password: $DOCKER_PASSWD - # target: ${IMAGE_TAG} - # template: ${IMAGE_TAG}-OS-ARCH - # platforms: - # - linux/amd64 - # - linux/arm64 - # - name: clear - # image: lumir/remove-dockerhub-tag - # args: - # - --user - # - $DOCKER_USERNAME - # - --password - # - $DOCKER_PASSWD - # - ${IMAGE_TAG}-linux-amd64 - # - ${IMAGE_TAG}-linux-arm64 + - services: + - docker + imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml + env: + IMAGE_TAG: btpanel/baota:slim + stages: + - name: await the amd64 + type: cnb:await + options: + key: build-amd64 + - name: await the arm64 + type: cnb:await + options: + key: build-arm64 + - name: manifest + image: cnbcool/manifest + settings: + username: $DOCKER_USERNAME + password: $DOCKER_PASSWD + target: ${IMAGE_TAG} + template: ${IMAGE_TAG}-OS-ARCH + platforms: + - linux/amd64 + - linux/arm64 + - name: clear + image: lumir/remove-dockerhub-tag + args: + - --user + - $DOCKER_USERNAME + - --password + - $DOCKER_PASSWD + - ${IMAGE_TAG}-linux-amd64 + - ${IMAGE_TAG}-linux-arm64 - runner: tags: cnb:arch:amd64 diff --git a/bt.sh b/bt.sh index f00d486..f66a00f 100644 --- a/bt.sh +++ b/bt.sh @@ -8,6 +8,24 @@ Setup_Path=$Root_Path/server/mysql Data_Path=$Root_Path/server/data O_pl=$(cat /www/server/panel/data/o.pl) +backup_database() { + if [ -d "${Data_Path}" ] && [ ! -z "$(ls -A ${Data_Path})" ]; then + if [ ! -d "${Setup_Path}" ] || [ -z "$(ls -A ${Setup_Path})" ]; then + timestamp=$(date +"%s") + tar czf /www/server/data_backup_$timestamp.tar.gz -C ${Data_Path} . + fi + fi +} + +restore_panel_data() { + if [ -f /www.tar.gz ]; then + if [ ! -d /www ] || [ -z "$(ls -A /www)" ] || [ ! -d /www/server/panel ] || [ -z "$(ls -A /www/server/panel)" ] || [ ! -d /www/server/panel/pyenv ] || [ -z "$(ls -A /www/server/panel/pyenv)" ]; then + tar xzf /www.tar.gz -C / --skip-old-files + rm -rf /www.tar.gz + fi + fi +} + soft_start(){ # 扫描并启动所有服务 init_scripts=$(ls ${init_path}) @@ -68,6 +86,9 @@ start_mysql(){ fi } + +restore_panel_data > /dev/null +backup_database > /dev/null is_empty_Data > /dev/null init_mysql > /dev/null start_mysql > /dev/null