ff
This commit is contained in:
42
scripts/docker/deploy-pull.sh
Normal file
42
scripts/docker/deploy-pull.sh
Normal file
@@ -0,0 +1,42 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user