This commit is contained in:
parent
fb4c2a012f
commit
6f5bb86707
|
|
@ -29,6 +29,24 @@ steps:
|
||||||
mirror: https://docker.m.daocloud.io
|
mirror: https://docker.m.daocloud.io
|
||||||
# 很多时候 plugins/docker 内部默认会处理 context,不需要你手动挂载 docker.sock
|
# 很多时候 plugins/docker 内部默认会处理 context,不需要你手动挂载 docker.sock
|
||||||
# 但需要确保服务器配置了 WOODPECKER_PLUGINS_PRIVILEGED=plugins/docker
|
# 但需要确保服务器配置了 WOODPECKER_PLUGINS_PRIVILEGED=plugins/docker
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
- name: 目标机器部署
|
||||||
|
image: appleboy/drone-ssh:latest
|
||||||
|
settings:
|
||||||
|
host:
|
||||||
|
from_secret: 136_ssh_host
|
||||||
|
username:
|
||||||
|
from_secret: 136_ssh_user
|
||||||
|
key:
|
||||||
|
from_secret: 136_ssh_key
|
||||||
|
port: 22
|
||||||
|
command_timeout: 10m
|
||||||
|
# 👇 核心黑魔法:利用 SSH 远程执行本地的脚本文件
|
||||||
|
script:
|
||||||
|
- bash -s < ./deploy.sh
|
||||||
when:
|
when:
|
||||||
event: push
|
event: push
|
||||||
branch: master
|
branch: master
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# deploy.sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
REGISTRY="registry.cn-zhangjiakou.aliyuncs.com"
|
||||||
|
IMAGE_NAME="${REGISTRY}/abhors/demo:latest"
|
||||||
|
CONTAINER_NAME="demo-app"
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo " 🚀 开始远程部署: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
# 1. 拉取最新镜像 (前提:你已经在服务器上手动执行过一次 docker login 保持登录状态)
|
||||||
|
echo "👉 正在拉取最新镜像..."
|
||||||
|
docker pull $IMAGE_NAME
|
||||||
|
|
||||||
|
# 2. 清理旧容器
|
||||||
|
echo "👉 正在清理旧容器..."
|
||||||
|
docker stop $CONTAINER_NAME 2>/dev/null || true
|
||||||
|
docker rm $CONTAINER_NAME 2>/dev/null || true
|
||||||
|
|
||||||
|
# 3. 启动新容器(带内存限制)
|
||||||
|
echo "👉 正在启动新容器..."
|
||||||
|
docker run -d \
|
||||||
|
--name $CONTAINER_NAME \
|
||||||
|
-p 8080:8080 \
|
||||||
|
--memory="1.2g" \
|
||||||
|
--restart always \
|
||||||
|
$IMAGE_NAME
|
||||||
|
|
||||||
|
# 4. 清理残留的旧镜像
|
||||||
|
echo "👉 清理历史构建残留..."
|
||||||
|
docker image prune -f
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo " 🎉 部署成功!"
|
||||||
|
echo "=========================================="
|
||||||
Loading…
Reference in New Issue