This commit is contained in:
parent
fb4c2a012f
commit
6f5bb86707
|
|
@ -29,6 +29,24 @@ steps:
|
|||
mirror: https://docker.m.daocloud.io
|
||||
# 很多时候 plugins/docker 内部默认会处理 context,不需要你手动挂载 docker.sock
|
||||
# 但需要确保服务器配置了 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:
|
||||
event: push
|
||||
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