selenium_keyan/selenium_vue/build-and-deploy.sh

68 lines
1.6 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# 前端单独构建和部署脚本
set -e
IMAGE_NAME="selenium-vue-app"
TAG=${1:-"latest"}
PORT=${2:-"3080"}
API_BASE_URL=${3:-"http://localhost:8000/api"}
echo "🏗️ 构建前端 Docker 镜像..."
echo " 前端端口: $PORT"
echo " API地址: $API_BASE_URL"
docker build \
--build-arg VITE_API_BASE_URL=$API_BASE_URL \
-t $IMAGE_NAME:$TAG .
echo "🛑 停止现有容器(如果存在)..."
docker stop $IMAGE_NAME 2>/dev/null || true
docker rm $IMAGE_NAME 2>/dev/null || true
echo "🚀 启动前端容器..."
docker run -d \
--name $IMAGE_NAME \
-p $PORT:80 \
--restart unless-stopped \
$IMAGE_NAME:$TAG
echo "⏳ 等待服务启动..."
sleep 3
echo "🏥 健康检查..."
# 尝试多个地址进行健康检查
HEALTH_URLS=("http://localhost:$PORT" "http://127.0.0.1:$PORT")
HEALTH_SUCCESS=false
for url in "${HEALTH_URLS[@]}"; do
if curl -f "$url" > /dev/null 2>&1; then
echo "✅ 前端启动成功!"
echo "📱 访问地址: $url"
HEALTH_SUCCESS=true
break
fi
done
if [ "$HEALTH_SUCCESS" = false ]; then
echo "❌ 前端启动失败,查看日志:"
docker logs $IMAGE_NAME
exit 1
fi
echo ""
echo "📋 配置信息:"
echo " 前端端口: $PORT"
echo " API地址: $API_BASE_URL"
echo ""
echo "📋 使用说明:"
echo " 用法: $0 [TAG] [PORT] [API_BASE_URL]"
echo " 示例: $0 v1.0 8080 http://192.168.1.100:8000/api"
echo ""
echo "📋 常用命令:"
echo " 查看日志: docker logs $IMAGE_NAME"
echo " 进入容器: docker exec -it $IMAGE_NAME /bin/sh"
echo " 停止应用: docker stop $IMAGE_NAME"
echo " 删除容器: docker rm $IMAGE_NAME"