branches: [ dev, master ] ssh_conf: &ssh_conf # 需要在 drone 对应项目的 secret 中设置 # 推荐一个项目一个密钥, 避免登录到其他项目的服务器 secrets: [ ssh_key ] ssh_conf: | Host * User root StrictHostKeyChecking no Host production_stack_manager_host Host 5.5.5.5 Host development_stack_manager_host Host 6.6.6.6 pipeline: preset_dev: when: { branch: dev } image: shynome/alpine-drone-ci commands: # docker stack manager host - deploy set host development_stack_manager_host # 要更新的服务 - deploy set server m_web # 用以更新的镜像名 - deploy set image shynome/alpine-drone-ci-web-test:dev # publish 的时候要推送的标签 - cat "dev">.tags preset_master: when: { branch: master } image: shynome/alpine-drone-ci commands: - deploy set host development_stack_manager_host - deploy set server m_web # 使用 DRONE_COMMIT_SHA 标签, 可以快速回退镜像 - cat "$DRONE_COMMIT_SHA,latest">.tags - deploy set image shynome/alpine-drone-ci-web-test:$DRONE_COMMIT_SHA restore-cache: image: drillster/drone-volume-cache restore: true mount: [ '/drone/docker' ] volumes: [ '/tmp/cache:/cache' ] publish: image: plugins/docker secrets: [ docker_username, docker_password ] # 镜像名 repo: shynome/alpine-drone-ci-web-test # 默认是 docker 官方仓库 registry: https://index.docker.io/v1/ # 国内镜像加速 mirror: https://registry.docker-cn.com # dockerfile path dockerfile: Dockerfile # 缓存镜像构建缓存 storage_path: /drone/docker rebuild-cache: image: drillster/drone-volume-cache rebuild: true mount: [ '/drone/docker' ] volumes: [ '/tmp/cache:/cache' ] deploy: image: shynome/alpine-drone-ci <<: *ssh_conf deploy: docker to