- FIX: Dockerfile — правильный multi-stage build - FIX: docker-compose.yml — убраны нерабочие конфиги - FIX: docker-entrypoint.sh — добавлен правильный entrypoint - FIX: D1_BINDING=aknaproff-db во всех конфигах - wrangler.jsonc: исправлен D1_BINDING - public/original.html: cache version update - Удалён HOTFIX_v4.1.24.md, добавлен HOTFIX_v4.1.26.md
55 lines
1.3 KiB
Bash
Executable File
55 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
PORT="${PORT:-3000}"
|
|
D1_BINDING="${D1_BINDING:-aknaproff-db}"
|
|
PERSIST_PATH="${PERSIST_PATH:-/data}"
|
|
SEED_DATA="${SEED_DATA:-false}"
|
|
SEED_SENTINEL="${PERSIST_PATH}/.seeded"
|
|
|
|
mkdir -p "${PERSIST_PATH}"
|
|
export WRANGLER_SEND_METRICS="${WRANGLER_SEND_METRICS:-false}"
|
|
|
|
apply_migrations() {
|
|
echo "[entrypoint] Applying D1 migrations (binding: ${D1_BINDING}, persist: ${PERSIST_PATH})"
|
|
npx wrangler d1 migrations apply "${D1_BINDING}" \
|
|
--local \
|
|
--persist-to "${PERSIST_PATH}"
|
|
}
|
|
|
|
maybe_seed_data() {
|
|
if [[ "${SEED_DATA,,}" != "true" ]]; then
|
|
echo "[entrypoint] Seed step disabled (set SEED_DATA=true to enable)"
|
|
return
|
|
fi
|
|
|
|
if [[ -f "${SEED_SENTINEL}" ]]; then
|
|
echo "[entrypoint] Seed data already applied (skipping)"
|
|
return
|
|
fi
|
|
|
|
echo "[entrypoint] Seeding local database from seed.sql"
|
|
if npx wrangler d1 execute "${D1_BINDING}" \
|
|
--local \
|
|
--persist-to "${PERSIST_PATH}" \
|
|
--file ./seed.sql; then
|
|
touch "${SEED_SENTINEL}"
|
|
else
|
|
echo "[entrypoint] Seed step failed but container will continue" >&2
|
|
fi
|
|
}
|
|
|
|
start_server() {
|
|
echo "[entrypoint] Starting Wrangler dev server on port ${PORT}"
|
|
exec npx wrangler pages dev dist \
|
|
--local \
|
|
--d1="${D1_BINDING}" \
|
|
--persist-to "${PERSIST_PATH}" \
|
|
--ip 0.0.0.0 \
|
|
--port "${PORT}"
|
|
}
|
|
|
|
apply_migrations
|
|
maybe_seed_data
|
|
start_server
|