demo/.woodpecker.yaml

106 lines
3.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第 98 次部署
steps:
- name: Java 构建
image: library/maven:3.9.6-eclipse-temurin-17
pull: true
commands:
- mvn clean package -DskipTests
volumes:
- /tmp/maven-cache:/root/.m2
when:
event: [push, pull_request]
branch: master
- name: 构建与推送
image: docker.m.daocloud.io/woodpeckerci/plugin-docker-buildx:latest-insecure
privileged: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
settings:
repo: push.lovestory.cyou/abhors/demo
registry: push.lovestory.cyou
username:
from_secret: nexus_docker_username
password:
from_secret: nexus_docker_password
mirror: https://registry.lovestory.cyou
when:
event: push
branch: master
#
# - name: 调试-查看工作目录文件
# image: alpine:latest # 使用一个轻量级的 Linux 镜像
# commands: # 普通步骤,使用 commands
# - pwd # 打印当前目录
# - ls -la # 列出所有文件
# - find . -name "*.yml" # 查找所有 .yml 文件
# when:
# event: push
# branch: master
# ============ 新增步骤 1上传 docker-compose.yml ============
- name: 上传编排文件
image: registry.lovestory.cyou/appleboy/drone-scp:latest # 官方镜像,也可换成你的私有源
settings:
host: 43.143.243.136
port: 22
username:
from_secret: 136_ssh_user
password:
from_secret: 136_ssh_password
# 要上传的本地文件(相对于工作空间根目录)
source:
- ./docker-compose.yml
# 远程服务器目标目录(如果不存在会自动创建)
target: /opt/demo-app
# 自动创建目标目录
mkdir: true
# 覆盖已有文件
overwrite: true
when:
event: push
branch: master
# ============ 修改步骤 2执行远程 SSH 命令重启 ============
- name: 远程执行部署
image: registry.lovestory.cyou/appleboy/drone-ssh:latest
environment:
NEXUS_DOCKER_USERNAME:
from_secret: nexus_docker_username
NEXUS_DOCKER_PASSWORD:
from_secret: nexus_docker_password
settings:
host: 43.143.243.136
port: 22
username:
from_secret: 136_ssh_user
password:
from_secret: 136_ssh_password
secrets: [ nexus_docker_username, nexus_docker_password ]
envs:
- NEXUS_DOCKER_USERNAME
- NEXUS_DOCKER_PASSWORD
script:
- echo "========================================="
- echo "🚀 开始部署节点43.143.243.136"
- echo "========================================="
# 1. 进入编排文件所在目录
- cd /opt/demo-app
# 2. 登录私有镜像仓库
- docker login --username "${NEXUS_DOCKER_USERNAME}" --password "${NEXUS_DOCKER_PASSWORD}" push.lovestory.cyou
# 3. 拉取最新镜像compose up 会自动拉取,但单独拉取便于查看进度)
- docker compose pull
# 4. 优雅地重启服务(推荐,替代之前的手动 stop/rm/run
# --remove-orphans 会移除 Compose 文件中未定义的旧容器
- docker compose up -d --remove-orphans
# 5. 清理未被使用的旧镜像和缓存,释放磁盘空间
- docker image prune -f
when:
event: push
branch: master