测试 cicd
This commit is contained in:
@@ -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}"
|
||||
Reference in New Issue
Block a user