测试 cicd

This commit is contained in:
cheney
2026-07-16 11:31:34 +08:00
parent f14501f586
commit 946311e53a
4 changed files with 116 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
# 部署脚本:在部署机上停止旧容器并启动新版镜像
# 由 CI/CD 通过 ssh 调用,CI/CD 通过 IMAGE_TAG 环境变量传入本次镜像 tag
# 依赖:本机已安装 docker;工作目录 /app/registry 用于持久化 data/
set -euo pipefail
IMAGE_NAME="registry"
IMAGE_TAG="${IMAGE_TAG:-latest}"
CONTAINER_NAME="registry"
HOST_PORT="${HOST_PORT:-8008}"
APP_DIR="$(cd "$(dirname "$0")" && pwd)"
DATA_DIR="${APP_DIR}/data"
echo "[start.sh] 使用镜像:${IMAGE_NAME}:${IMAGE_TAG}"
mkdir -p "${DATA_DIR}/configs"
# 停止并清理旧容器(若不存在则忽略)
if docker ps -a --format '{{.Names}}' | grep -qx "${CONTAINER_NAME}"; then
echo "[start.sh] 停止并删除旧容器 ${CONTAINER_NAME}"
docker rm -f "${CONTAINER_NAME}" >/dev/null
fi
# 启动新容器:数据目录挂载到宿主机以持久化
echo "[start.sh] 启动新容器"
docker run -d \
--name "${CONTAINER_NAME}" \
--restart unless-stopped \
-p "${HOST_PORT}:3000" \
-v "${DATA_DIR}:/app/data" \
"${IMAGE_NAME}:${IMAGE_TAG}"
echo "[start.sh] 部署完成:http://localhost:${HOST_PORT}"