fix(deploy): 改进docker部署脚本的错误处理和配置检查
添加环境文件路径覆盖参数,并增强错误提示 统一docker运行命令逻辑,强制检查配置文件存在性
This commit is contained in:
parent
48863be438
commit
0f603041d9
|
|
@ -1,16 +1,23 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
ENV_NAME="${1:-test}"
|
||||
IMAGE="marketing-system-data-tool"
|
||||
TAG="$ENV_NAME"
|
||||
PORT="${PORT:-8077}"
|
||||
cd "$ROOT_DIR"
|
||||
ENV_FILE=".env.$ENV_NAME"
|
||||
if [ ! -f "$ENV_FILE" ] && [ -f "server/.env.$ENV_NAME" ]; then
|
||||
ENV_FILE_OVERRIDE="${2:-}"
|
||||
if [ -n "$ENV_FILE_OVERRIDE" ]; then
|
||||
ENV_FILE="$ENV_FILE_OVERRIDE"
|
||||
else
|
||||
ENV_FILE=".env.$ENV_NAME"
|
||||
if [ ! -f "$ENV_FILE" ] && [ -f "server/.env.$ENV_NAME" ]; then
|
||||
ENV_FILE="server/.env.$ENV_NAME"
|
||||
fi
|
||||
fi
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo "$ENV_FILE not found" >&2
|
||||
echo "请创建 .env.$ENV_NAME 或指定第二个参数为 env 文件路径" >&2
|
||||
echo "示例:server/.env.example" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -25,8 +32,11 @@ if docker ps -a --format '{{.Names}}' | grep -q "^${CID_NAME}$"; then
|
|||
docker rm "$CID_NAME" >/dev/null 2>&1 || true
|
||||
fi
|
||||
CONFIG_PATH="$ROOT_DIR/server/config.$ENV_NAME.yaml"
|
||||
if [ -f "$CONFIG_PATH" ]; then
|
||||
docker run -d \
|
||||
if [ ! -f "$CONFIG_PATH" ]; then
|
||||
echo "配置文件缺失:$CONFIG_PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
docker run -d \
|
||||
--name "$CID_NAME" \
|
||||
--restart unless-stopped \
|
||||
--env APP_ENV="$ENV_NAME" \
|
||||
|
|
@ -36,15 +46,4 @@ if [ -f "$CONFIG_PATH" ]; then
|
|||
-v "$ROOT_DIR/log:/app/log" \
|
||||
-v "$CONFIG_PATH:/app/server/config.$ENV_NAME.yaml:ro" \
|
||||
"$IMAGE:$TAG"
|
||||
else
|
||||
docker run -d \
|
||||
--name "$CID_NAME" \
|
||||
--restart unless-stopped \
|
||||
--env APP_ENV="$ENV_NAME" \
|
||||
--env-file "$ENV_FILE" \
|
||||
-p "$PORT:8077" \
|
||||
-v "$ROOT_DIR/storage/export:/app/storage/export" \
|
||||
-v "$ROOT_DIR/log:/app/log" \
|
||||
"$IMAGE:$TAG"
|
||||
fi
|
||||
echo "container: $CID_NAME image: $IMAGE:$TAG port: $PORT"
|
||||
|
|
|
|||
Loading…
Reference in New Issue