deploy.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. echo "=========================================="
  3. echo "SM2签名服务 - 一键部署脚本"
  4. echo "=========================================="
  5. echo ""
  6. # 检查Docker
  7. if ! command -v docker &> /dev/null; then
  8. echo "❌ 错误: 未安装Docker"
  9. echo ""
  10. echo "请先安装Docker:"
  11. echo "curl -fsSL https://get.docker.com | sh"
  12. exit 1
  13. fi
  14. echo "✅ Docker已安装: $(docker --version)"
  15. echo ""
  16. # 停止旧容器
  17. if docker ps -a | grep -q sm2-sign-server; then
  18. echo "停止旧容器..."
  19. docker stop sm2-sign-server 2>/dev/null
  20. docker rm sm2-sign-server 2>/dev/null
  21. fi
  22. # 构建镜像
  23. echo "构建Docker镜像..."
  24. docker build -t sign-server:latest .
  25. if [ $? -ne 0 ]; then
  26. echo "❌ 镜像构建失败"
  27. exit 1
  28. fi
  29. echo "✅ 镜像构建成功"
  30. echo ""
  31. # 启动容器
  32. echo "启动容器..."
  33. docker run -d \
  34. --name sm2-sign-server \
  35. -p 8888:8888 \
  36. --restart unless-stopped \
  37. --log-opt max-size=10m \
  38. --log-opt max-file=3 \
  39. sign-server:latest
  40. if [ $? -ne 0 ]; then
  41. echo "❌ 容器启动失败"
  42. exit 1
  43. fi
  44. echo "✅ 容器启动成功"
  45. echo ""
  46. # 等待服务启动
  47. echo "等待服务启动..."
  48. sleep 3
  49. # 健康检查
  50. echo "检查服务状态..."
  51. HEALTH_CHECK=$(curl -s http://localhost:8888/api/health)
  52. if [ $? -eq 0 ]; then
  53. echo "✅ 服务运行正常"
  54. echo "响应: $HEALTH_CHECK"
  55. else
  56. echo "⚠️ 健康检查失败,查看日志:"
  57. docker logs --tail 20 sm2-sign-server
  58. fi
  59. echo ""
  60. echo "=========================================="
  61. echo "部署完成!"
  62. echo "=========================================="
  63. echo "访问地址: http://localhost:8888"
  64. echo ""
  65. echo "常用命令:"
  66. echo " 查看日志: docker logs -f sm2-sign-server"
  67. echo " 停止服务: docker stop sm2-sign-server"
  68. echo " 启动服务: docker start sm2-sign-server"
  69. echo " 重启服务: docker restart sm2-sign-server"
  70. echo "=========================================="