43 lines
1.1 KiB
Bash
43 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
||
# 部署机拉取 latest 并启动(对齐 bd-server/scripts/pull-main-on-deploy.sh)
|
||
# 自测: curl -sI "https://docker-registry.tianyuanapi.com/v2/haiyushuke/website/manifests/latest"
|
||
#
|
||
# 用法:
|
||
# cp deploy.env.example deploy.env
|
||
# ./deploy-pull.sh
|
||
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
COMPOSE_FILE="${SCRIPT_DIR}/docker-compose.yml"
|
||
ENV_FILE="${ENV_FILE:-${SCRIPT_DIR}/deploy.env}"
|
||
|
||
if [[ ! -f "${ENV_FILE}" ]]; then
|
||
echo "missing ${ENV_FILE} (cp deploy.env.example deploy.env)" >&2
|
||
exit 1
|
||
fi
|
||
|
||
cd "${SCRIPT_DIR}"
|
||
|
||
echo "==> pull website (latest)"
|
||
docker compose --env-file "${ENV_FILE}" -f "${COMPOSE_FILE}" pull
|
||
|
||
echo "==> up -d website"
|
||
docker compose --env-file "${ENV_FILE}" -f "${COMPOSE_FILE}" up -d
|
||
|
||
# shellcheck disable=SC1090
|
||
set -a
|
||
source "${ENV_FILE}"
|
||
set +a
|
||
HOST_PORT="${HOST_PORT:-3000}"
|
||
|
||
echo "==> health http://127.0.0.1:${HOST_PORT}/"
|
||
sleep 2
|
||
if curl -fsS -o /dev/null "http://127.0.0.1:${HOST_PORT}/"; then
|
||
echo "OK"
|
||
else
|
||
echo "WARN: curl failed; docker compose logs -f website"
|
||
fi
|
||
|
||
echo "Done: ${REGISTRY}/${IMAGE_PATH}:latest"
|