| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # 生产 Docker 交付包:仅 tag 触发
- # 镜像与包名固定为 v1.1.0(与现网 .env / 部署习惯一致),便于生产升级时不必改镜像标签
- # 产物:/root/zkxw-releases/zkxw-docker-deploy-v1.1.0.tar.gz
- # 脚本:./scripts/package-docker-deploy.sh
- #
- # docker.sock 与 /releases 由 runner 环境变量 DRONE_RUNNER_VOLUMES 注入,
- # 勿在本文件再声明同路径 host volume,否则会 Duplicate mount point。
- #
- # 注意:Drone 会对 commands 里的 ${VAR} 做预处理替换;自定义环境变量请用 $${VAR}
- # 或直接写死版本号,避免变成空字符串。
- kind: pipeline
- type: docker
- name: package-prod
- concurrency:
- limit: 1
- trigger:
- event:
- - tag
- clone:
- depth: 1
- steps:
- - name: package-docker
- image: docker:27-cli
- environment:
- DOCKER_BUILDKIT: '1'
- NODE_MAX_OLD_SPACE_SIZE: '3072'
- NPM_REGISTRY: https://registry.npmmirror.com
- PIP_INDEX_URL: https://mirrors.aliyun.com/pypi/simple/
- PIP_TRUSTED_HOST: mirrors.aliyun.com
- ZKXW_DEPLOY_VERSION: v1.1.0
- commands:
- - set -eu
- # 国内机访问 dl-cdn.alpinelinux.org 偶发 Permission denied,改用阿里云镜像
- - sed -i 's#dl-cdn.alpinelinux.org#mirrors.aliyun.com#g' /etc/apk/repositories
- - apk add --no-cache bash git python3
- # 固定 v1.1.0;$${ } 防止 Drone 预处理把自定义变量掏空
- - export ZKXW_DEPLOY_VERSION="$${ZKXW_DEPLOY_VERSION:-v1.1.0}"
- - echo "==> git tag=${DRONE_TAG:-none} deploy_version=$${ZKXW_DEPLOY_VERSION} commit=${DRONE_COMMIT}"
- - chmod +x scripts/package-docker-deploy.sh scripts/build-docker-images.sh
- - |
- if [ -f /releases/.deploy-docker.env ]; then
- mkdir -p deploy/docker
- cp /releases/.deploy-docker.env deploy/docker/.env
- echo "using /releases/.deploy-docker.env for secret inject"
- fi
- - ./scripts/package-docker-deploy.sh "$${ZKXW_DEPLOY_VERSION}"
- - mkdir -p /releases
- - cp -v dist/zkxw-docker-deploy-"$${ZKXW_DEPLOY_VERSION}".tar.gz /releases/
- - ls -lh /releases/zkxw-docker-deploy-"$${ZKXW_DEPLOY_VERSION}".tar.gz
- - sha256sum /releases/zkxw-docker-deploy-"$${ZKXW_DEPLOY_VERSION}".tar.gz
|