refactor(deployment): 移除docker-compose配置并重构部署脚本

删除不再使用的docker-compose.yml和deploy_image.sh文件
重构deploy.sh脚本以直接运行Go二进制程序
简化部署流程,不再依赖Docker容器
This commit is contained in:
zhouyonggao 2025-11-28 16:36:59 +08:00
parent bf3eae2f2f
commit 1d8760e9b5
4 changed files with 21 additions and 118 deletions

View File

@ -1,22 +0,0 @@
services:
msdt:
build: .
platform: ${PLATFORM:-linux/amd64}
container_name: msdt
environment:
- APP_ENV=${APP_ENV:-prod}
- MARKETING_DB_HOST=${MARKETING_DB_HOST}
- MARKETING_DB_PORT=${MARKETING_DB_PORT}
- MARKETING_DB_USER=${MARKETING_DB_USER}
- MARKETING_DB_PASSWORD=${MARKETING_DB_PASSWORD}
- MARKETING_DB_NAME=${MARKETING_DB_NAME}
- YMT_DB_HOST=${YMT_DB_HOST}
- YMT_DB_PORT=${YMT_DB_PORT}
- YMT_DB_USER=${YMT_DB_USER}
- YMT_DB_PASSWORD=${YMT_DB_PASSWORD}
- YMT_DB_NAME=${YMT_DB_NAME}
- YMT_KEY_DECRYPT_KEY_B64=${YMT_KEY_DECRYPT_KEY_B64}
ports:
- "8077:8077"
volumes:
- ./server/storage:/app/storage

View File

@ -1,28 +1,22 @@
#!/usr/bin/env sh
set -e
ENV=${1:-prod}
MODE=${2:-no-build}
ENVFILE=""
if [ -f ".env.$ENV" ]; then ENVFILE="--env-file .env.$ENV"; fi
PLATFORM=${PLATFORM:-}
if [ -z "$PLATFORM" ]; then
ARCH=$(uname -m)
case "$ARCH" in
x86_64) PLATFORM="linux/amd64" ;;
aarch64) PLATFORM="linux/arm64" ;;
*) PLATFORM="linux/amd64" ;;
esac
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ENV_NAME="${1:-prod}"
export APP_ENV="$ENV_NAME"
cd "$ROOT_DIR"
if [ -f ".env.$ENV_NAME" ]; then
true
elif [ -f "server/.env.$ENV_NAME" ]; then
true
else
echo ".env.$ENV_NAME not found" >&2
exit 1
fi
export PLATFORM
case "$MODE" in
no-build)
APP_ENV=$ENV docker compose $ENVFILE up -d ;;
rebuild)
APP_ENV=$ENV docker compose $ENVFILE build --no-cache
APP_ENV=$ENV docker compose $ENVFILE up -d ;;
pull)
APP_ENV=$ENV docker compose $ENVFILE build --pull
APP_ENV=$ENV docker compose $ENVFILE up -d ;;
build|*)
APP_ENV=$ENV docker compose $ENVFILE up -d --build ;;
esac
mkdir -p log
cd "$ROOT_DIR/server"
go build -o "bin/marketing-data-server" "./cmd/server"
cd "$ROOT_DIR"
TARGET="$ROOT_DIR/server/bin/marketing-data-server"
nohup env APP_ENV="$ENV_NAME" "$TARGET" > "$ROOT_DIR/log/server.out" 2>&1 &
echo $! > "$ROOT_DIR/server/bin/server.pid"
echo "started: $TARGET pid $(cat "$ROOT_DIR/server/bin/server.pid")"

View File

@ -1,69 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
ENV=${1:-test}
IMAGE=${2:-marketingsystemdatatool_msdt:latest}
CMD=${3:-up}
PLATFORM=${PLATFORM:-}
if [ -z "$PLATFORM" ]; then
ARCH=$(uname -m)
case "$ARCH" in
x86_64) PLATFORM="linux/amd64" ;;
aarch64) PLATFORM="linux/arm64" ;;
*) PLATFORM="linux/amd64" ;;
esac
fi
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
if [ -f "$ROOT_DIR/.env.$ENV" ]; then
set -a
. "$ROOT_DIR/.env.$ENV"
set +a
fi
case "$CMD" in
up)
docker rm -f msdt >/dev/null 2>&1 || true
PLATFORM_FLAG=""
if [ -n "$PLATFORM" ]; then PLATFORM_FLAG="--platform $PLATFORM"; fi
IMG_ARCH=""
if docker image inspect "$IMAGE" >/dev/null 2>&1; then
IMG_ARCH=$(docker image inspect "$IMAGE" --format '{{.Architecture}}' 2>/dev/null || echo "")
fi
if [ -n "$IMG_ARCH" ]; then
HOST_ARCH=$(uname -m)
case "$HOST_ARCH" in x86_64) HOST_ARCH="amd64" ;; aarch64) HOST_ARCH="arm64" ;; *) HOST_ARCH="amd64" ;; esac
if [ "$IMG_ARCH" != "$HOST_ARCH" ]; then
docker pull --platform "$PLATFORM" "$IMAGE" >/dev/null 2>&1 || true
PLATFORM_FLAG="--platform $PLATFORM"
fi
else
docker pull --platform "$PLATFORM" "$IMAGE" >/dev/null 2>&1 || true
fi
docker run -d --name msdt $PLATFORM_FLAG \
-p 8077:8077 \
-e APP_ENV="$ENV" \
-e MARKETING_DB_HOST="${MARKETING_DB_HOST:-}" \
-e MARKETING_DB_PORT="${MARKETING_DB_PORT:-}" \
-e MARKETING_DB_USER="${MARKETING_DB_USER:-}" \
-e MARKETING_DB_PASSWORD="${MARKETING_DB_PASSWORD:-}" \
-e MARKETING_DB_NAME="${MARKETING_DB_NAME:-}" \
-e YMT_DB_HOST="${YMT_DB_HOST:-}" \
-e YMT_DB_PORT="${YMT_DB_PORT:-}" \
-e YMT_DB_USER="${YMT_DB_USER:-}" \
-e YMT_DB_PASSWORD="${YMT_DB_PASSWORD:-}" \
-e YMT_DB_NAME="${YMT_DB_NAME:-}" \
-v "$ROOT_DIR/server/storage:/app/storage" \
"$IMAGE" ;;
down)
docker rm -f msdt >/dev/null 2>&1 || true ;;
restart)
docker restart msdt ;;
logs)
docker logs -f msdt ;;
*)
echo "usage: deploy_image.sh <env> <image> [up|down|restart|logs]" >&2
echo "env overrides: set PLATFORM=linux/amd64 or PLATFORM=linux/arm64 if needed" >&2
exit 1 ;;
esac

Binary file not shown.