forked from wangbo/easyai
34 lines
1.9 KiB
Bash
34 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Real anonymous image preflight for the complete README installation, no daemon mutations.
|
|
set -euo pipefail
|
|
unset UPDATE_SERVICES UPDATE_RELEASE_VERSION UPDATE_SERVER_VERSION UPDATE_WEB_VERSION UPDATE_GATEWAY_VERSION UPDATE_WORKER_VERSION UPDATE_UPDATER_VERSION UPDATE_ASG_VERSION UPDATE_AMS_VERSION
|
|
unset UPDATE_MANIFEST_SOURCE UPDATE_MANIFEST_URL
|
|
source_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
manifest_source=''
|
|
while [ "$#" -gt 0 ]; do
|
|
case "$1" in
|
|
--version) export DEPLOY_RELEASE_VERSION="${2:?缺少版本}"; shift 2 ;;
|
|
--manifest) manifest_source="$(cd "$(dirname "${2:?缺少发布记录}")" && pwd)/$(basename "$2")"; shift 2 ;;
|
|
*) echo '用法:bash scripts/check-deployment-release.sh [--version 完整版本] [--manifest 发布记录]' >&2; exit 1 ;;
|
|
esac
|
|
done
|
|
if [ -n "$manifest_source" ] && ! [[ "${DEPLOY_RELEASE_VERSION:-}" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]{8}(\.[0-9]+)?$ ]]; then
|
|
echo '--manifest 必须同时指定完整 --version' >&2
|
|
exit 1
|
|
fi
|
|
temporary="$(mktemp -d "${TMPDIR:-/tmp}/easyai-release-check.XXXXXX")"
|
|
trap 'rm -r "$temporary"' EXIT
|
|
cp "$source_root/docker-compose.yml" "$temporary/"
|
|
cp -R "$source_root/scripts" "$source_root/system-update" "$temporary/"
|
|
if [ -n "$manifest_source" ]; then cp "$manifest_source" "$temporary/system-update/releases/${DEPLOY_RELEASE_VERSION}.json"; fi
|
|
for name in .env .env.tools .env.ASG .env.AMS; do cp "$source_root/$name.sample" "$temporary/$name"; done
|
|
cd "$temporary"
|
|
. ./scripts/init-security-env.sh
|
|
. ./scripts/init-application-version-env.sh
|
|
write_env_value .env UPDATE_MANIFEST_SOURCE local
|
|
plan_application_versions .env
|
|
apply_application_versions .env
|
|
if docker compose version >/dev/null 2>&1; then compose=(docker compose); else compose=(docker-compose); fi
|
|
configuration="$("${compose[@]}" config --format json)"
|
|
printf '%s' "$configuration" | python3 ./scripts/verify-deployment-images.py
|