#!/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