fix: sac-deploy validate sac-api.env without bash source
Preflight pydantic parse catches inline comments in env values; alembic and stale remote_action reset use SAC_CONFIG_FILE. Document env format and ssh_known_hosts in runbook. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -56,12 +56,16 @@ fi
|
||||
log "pip install -r requirements.txt"
|
||||
sudo -u "${APP_USER}" "${VENV}/bin/pip" install -q -r "${APP_ROOT}/backend/requirements.txt"
|
||||
|
||||
log "Проверка ${CONFIG_FILE} (pydantic; без bash source — inline-комментарии в значениях ломают deploy)"
|
||||
sudo -u "${APP_USER}" bash -c "
|
||||
export SAC_CONFIG_FILE='${CONFIG_FILE}'
|
||||
cd '${APP_ROOT}/backend'
|
||||
'${VENV}/bin/python' -c 'from app.config import get_settings; get_settings(); print(\"config: OK\")'
|
||||
" || die "Неверный ${CONFIG_FILE}: одна переменная = одна строка, комментарии только отдельной строкой с # (не «false ← …» после значения)"
|
||||
|
||||
log "alembic upgrade head"
|
||||
sudo -u "${APP_USER}" bash -c "
|
||||
set -a
|
||||
# shellcheck source=/dev/null
|
||||
source '${CONFIG_FILE}'
|
||||
set +a
|
||||
export SAC_CONFIG_FILE='${CONFIG_FILE}'
|
||||
cd '${APP_ROOT}/backend' && '${VENV}/bin/alembic' upgrade head
|
||||
"
|
||||
|
||||
@@ -107,10 +111,7 @@ print('db: OK')
|
||||
log "systemctl restart ${SERVICE_NAME} (краткий 502 в UI возможен ~10 с)"
|
||||
log "Сброс зависших remote_action (running без worker после restart)"
|
||||
sudo -u "${APP_USER}" bash -c "
|
||||
set -a
|
||||
# shellcheck source=/dev/null
|
||||
source '${CONFIG_FILE}'
|
||||
set +a
|
||||
export SAC_CONFIG_FILE='${CONFIG_FILE}'
|
||||
cd '${APP_ROOT}/backend'
|
||||
'${VENV}/bin/python' -c \"
|
||||
from app.database import SessionLocal
|
||||
|
||||
Reference in New Issue
Block a user