refactor(deployment): 移除docker-compose配置并重构部署脚本
删除不再使用的docker-compose.yml和deploy_image.sh文件 重构deploy.sh脚本以直接运行Go二进制程序 简化部署流程,不再依赖Docker容器
This commit is contained in:
parent
bf3eae2f2f
commit
1d8760e9b5
|
|
@ -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
|
||||
|
|
@ -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")"
|
||||
|
|
|
|||
|
|
@ -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.
Loading…
Reference in New Issue