86 lines
2.3 KiB
Bash
86 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
IMAGE_NAME="web-signature-service"
|
|
CONTAINER_NAME="web-signature-service"
|
|
PORT="8000"
|
|
|
|
echo "========================================="
|
|
echo "Web Header Signature Service - Deploy"
|
|
echo "========================================="
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
# 检查 .env 文件,如果存在则加载
|
|
ENV_FILE=""
|
|
if [ -f ".env" ]; then
|
|
echo "Found .env file, will use it for deployment."
|
|
ENV_FILE="--env-file .env"
|
|
else
|
|
echo "Warning: .env file not found. Service will use default target configurations."
|
|
fi
|
|
|
|
case "${1:-up}" in
|
|
up)
|
|
echo ""
|
|
echo "[1/3] Building Docker image..."
|
|
docker build -t ${IMAGE_NAME} .
|
|
|
|
echo ""
|
|
echo "[2/3] Stopping old container (if exists)..."
|
|
docker stop ${CONTAINER_NAME} 2>/dev/null || true
|
|
docker rm ${CONTAINER_NAME} 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "[3/3] Starting service..."
|
|
# 注意: 传入环境变量配置
|
|
docker run -d \
|
|
--name ${CONTAINER_NAME} \
|
|
-p ${PORT}:8000 \
|
|
--restart unless-stopped \
|
|
-v /dev/shm:/dev/shm \
|
|
--security-opt seccomp=unconfined \
|
|
-e TZ=Asia/Shanghai \
|
|
${ENV_FILE} \
|
|
${IMAGE_NAME}
|
|
|
|
echo ""
|
|
echo "Waiting for service to start..."
|
|
sleep 3
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo "Deployment completed!"
|
|
echo ""
|
|
echo "Service URL: http://localhost:${PORT}"
|
|
echo "API Docs: http://localhost:${PORT}/docs"
|
|
echo "Health: http://localhost:${PORT}/health"
|
|
echo "Get Sign: http://localhost:${PORT}/fingerprint"
|
|
echo ""
|
|
echo "View Logs: docker logs -f ${CONTAINER_NAME}"
|
|
echo "Stop: docker stop ${CONTAINER_NAME}"
|
|
echo "========================================="
|
|
;;
|
|
|
|
down)
|
|
echo "Stopping service..."
|
|
docker stop ${CONTAINER_NAME} 2>/dev/null || true
|
|
docker rm ${CONTAINER_NAME} 2>/dev/null || true
|
|
echo "Service stopped."
|
|
;;
|
|
|
|
logs)
|
|
docker logs -f ${CONTAINER_NAME}
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 [command]"
|
|
echo "Commands:"
|
|
echo " up - Build and start (default)"
|
|
echo " down - Stop and remove"
|
|
echo " logs - View logs"
|
|
;;
|
|
esac
|
|
|