106 lines
3.4 KiB
YAML
106 lines
3.4 KiB
YAML
# 第 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 |