Files
baiyue-firstleg/deploy/scripts/deploy-services.sh
T
2026-07-30 18:16:57 +08:00

44 lines
972 B
Bash

#!/usr/bin/env sh
set -eu
if [ "$#" -ne 5 ]; then
echo "用法: $0 <环境> <镜像仓库> <镜像标签> <逗号分隔服务> <环境文件>" >&2
exit 2
fi
DEPLOY_ENV="$1"
IMAGE_REPOSITORY="$2"
IMAGE_TAG="$3"
SERVICE_CSV="$4"
ENV_FILE="$5"
if [ ! -f "$ENV_FILE" ]; then
echo "环境文件不存在: $ENV_FILE" >&2
exit 2
fi
SERVICES=$(printf '%s' "$SERVICE_CSV" | tr ',' ' ')
case " $SERVICES " in
*" gateway "*) SERVICES="$SERVICES" ;;
*) SERVICES="$SERVICES gateway" ;;
esac
export DEPLOY_ENV IMAGE_REPOSITORY IMAGE_TAG
docker compose \
--project-name "firstleg-${DEPLOY_ENV}" \
--env-file "$ENV_FILE" \
-f deploy/docker-compose.yml \
pull $SERVICES
docker compose \
--project-name "firstleg-${DEPLOY_ENV}" \
--env-file "$ENV_FILE" \
-f deploy/docker-compose.yml \
up -d --remove-orphans $SERVICES
docker compose \
--project-name "firstleg-${DEPLOY_ENV}" \
--env-file "$ENV_FILE" \
-f deploy/docker-compose.yml \
ps $SERVICES