feat(deploy): add docker
This commit is contained in:
53
deploy/validate-env.sh
Normal file
53
deploy/validate-env.sh
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "${SCRIPT_DIR}"
|
||||
|
||||
# 路径修正:validate-env.sh 在 deploy/ 目录下,而 .env 在项目根目录
|
||||
# 项目根目录 = deploy/../ = ../
|
||||
ENV_FILE="../.env"
|
||||
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo "Error: .env file not found at $(readlink -f "$ENV_FILE")"
|
||||
echo "Please copy .env.example to .env and configure it."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Validating iam-front .env configuration..."
|
||||
|
||||
# Helper to read env var
|
||||
get_env() {
|
||||
local key=$1
|
||||
local val
|
||||
val=$(grep "^${key}=" "$ENV_FILE" | cut -d= -f2- | tr -d '"' | tr -d "'")
|
||||
echo "$val"
|
||||
}
|
||||
|
||||
# 1. 检查必要变量
|
||||
REQUIRED_VARS=(
|
||||
"IAM_SERVICE_BASE_URL"
|
||||
"CAPTCHA_SECRET"
|
||||
)
|
||||
|
||||
for var in "${REQUIRED_VARS[@]}"; do
|
||||
val=$(get_env "$var")
|
||||
if [ -z "$val" ]; then
|
||||
echo "Error: $var is required in .env"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 2. 检查 Docker 模式下 localhost
|
||||
DEPLOY_TARGET="${DEPLOY_TARGET:-}"
|
||||
if [ "$DEPLOY_TARGET" == "docker" ]; then
|
||||
IAM_URL=$(get_env "IAM_SERVICE_BASE_URL")
|
||||
if [[ "$IAM_URL" == *"localhost"* ]] || [[ "$IAM_URL" == *"127.0.0.1"* ]]; then
|
||||
echo "Error: IAM_SERVICE_BASE_URL contains localhost/127.0.0.1"
|
||||
echo "In Docker, this refers to the container itself."
|
||||
echo "Please use the host IP or docker-compose service name (if in same network)."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "iam-front .env validation OK"
|
||||
Reference in New Issue
Block a user