37 lines
1.0 KiB
Bash
37 lines
1.0 KiB
Bash
#!/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 "==========================================" |