#!/bin/bash set -e # 定义变量 IMAGE_NAME="excel2pic" CONTAINER_NAME="excel2pic" PORT=8010 echo "开始部署 $IMAGE_NAME ..." # 0. 拉取最新代码 if [ -d ".git" ]; then echo "正在拉取最新代码..." git pull else echo "警告: 当前不是 Git 仓库,跳过代码拉取。" fi # 1. 构建 Docker 镜像 echo "构建 Docker 镜像..." docker build -t $IMAGE_NAME:latest . # 2. 检查并停止旧容器 if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "停止并移除旧容器..." docker stop $CONTAINER_NAME || true docker rm $CONTAINER_NAME || true fi # 3. 启动新容器 echo "启动新容器..." docker run -d \ --name $CONTAINER_NAME \ -p $PORT:8000 \ $IMAGE_NAME:latest # 4. 验证部署 echo "等待服务启动..." sleep 2 if docker ps | grep -q $CONTAINER_NAME; then echo "部署成功!" echo "API 文档地址: http://localhost:$PORT/docs" echo "测试转换接口: POST http://localhost:$PORT/api/v1/convert" else echo "部署失败,容器未运行。" docker logs $CONTAINER_NAME exit 1 fi