40 lines
867 B
Bash
40 lines
867 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
|
|
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
|