Files
docker-vitepress/docker/docker-entrypoint.sh
2026-05-19 22:27:43 +08:00

85 lines
2.4 KiB
Bash

#!/bin/sh
set -e
echo "========================================"
echo "VitePress Container"
echo "========================================"
# Set default values
export DOCS_PATH=${DOCS_PATH:-/app/docs}
export VITEPRESS_PORT=${VITEPRESS_PORT:-3000}
export API_PORT=${API_PORT:-3001}
echo "Configuration:"
echo " DOCS_PATH: $DOCS_PATH"
echo " VITEPRESS_PORT: $VITEPRESS_PORT"
echo " API_PORT: $API_PORT"
echo "========================================"
# Check if docs directory exists
if [ ! -d "$DOCS_PATH" ]; then
echo "Creating docs directory: $DOCS_PATH"
mkdir -p "$DOCS_PATH"
fi
# Check if package.json exists
if [ ! -f "/app/package.json" ]; then
echo "Error: /app/package.json not found!"
exit 1
fi
# Install API dependencies if needed
if [ ! -f "/app/api/node_modules/.package-lock.json" ]; then
echo "Installing API dependencies..."
cd /app/api && npm install
fi
echo ""
echo "========================================"
echo "Starting VitePress Documentation Server..."
echo "========================================"
# Start VitePress dev server in background (运行在 docs 目录下)
echo "[1/2] Starting VitePress dev server on port $VITEPRESS_PORT..."
cd /app
export NODE_ENV=development
nohup npm run docs:dev -- --port $VITEPRESS_PORT --host > /var/log/vitepress.log 2>&1 &
VITEPRESS_PID=$!
echo "VitePress started with PID: $VITEPRESS_PID"
# export NODE_ENV=development
# npm run docs:dev -- --port $VITEPRESS_PORT --host
# Wait for VitePress to start
echo "Waiting for VitePress to start..."
sleep 10
# Check if VitePress is running
if ! kill -0 $VITEPRESS_PID 2>/dev/null; then
echo "Warning: VitePress server may not have started properly"
echo "Check logs: cat /var/log/vitepress.log"
fi
echo "[2/2] Starting API server on port $API_PORT..."
echo ""
echo "========================================"
echo "All services started successfully!"
echo "========================================"
echo ""
echo "Services:"
echo " - VitePress Documentation: http://localhost:$VITEPRESS_PORT"
echo " - API Server: http://localhost:$API_PORT"
echo ""
echo "API Endpoints:"
echo " GET /health - Health check"
echo " GET /export-pdf - Export PDF"
echo "Logs:"
echo " VitePress: cat /var/log/vitepress.log"
echo " API Server: docker logs vitepress-docker"
echo ""
echo "========================================"
# Execute the API server with absolute path
exec node /app/api/server.js