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