Files
baiyue-firstleg/deploy/scripts/deploy-services.sh
T
2026-07-30 22:36:54 +08:00

46 lines
994 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 ',' ' ')
export DEPLOY_ENV IMAGE_REPOSITORY IMAGE_TAG
PULL_POLICY_ARGS=""
if [ "$DEPLOY_ENV" = "test" ]; then
PULL_POLICY_ARGS="--pull never"
else
docker compose \
--project-name "firstleg-${DEPLOY_ENV}" \
--env-file "$ENV_FILE" \
-f deploy/docker-compose.yml \
pull $SERVICES
fi
docker compose \
--project-name "firstleg-${DEPLOY_ENV}" \
--env-file "$ENV_FILE" \
-f deploy/docker-compose.yml \
up -d --remove-orphans $PULL_POLICY_ARGS $SERVICES
docker compose \
--project-name "firstleg-${DEPLOY_ENV}" \
--env-file "$ENV_FILE" \
-f deploy/docker-compose.yml \
ps $SERVICES