diff --git a/scripts/deploy-preview.py b/scripts/deploy-preview.py index ff5b725..b5ad73d 100644 --- a/scripts/deploy-preview.py +++ b/scripts/deploy-preview.py @@ -78,14 +78,20 @@ def deploy(pr_id: str): ).stdout.strip() if prod_pod: - kubectl("cp", f"{PROD_NS}/{prod_pod}:/data/planner.db", "data/planner.db") + r = kubectl("cp", f"{PROD_NS}/{prod_pod}:/data/planner.db", "data/planner.db", check=False) + if r.returncode != 0 or not Path("data/planner.db").exists() or Path("data/planner.db").stat().st_size == 0: + print(" WARNING: Could not copy prod DB, using empty DB") + Path("data/planner.db").touch() else: print(" WARNING: No running prod pod, using empty DB") Path("data/planner.db").touch() # 2. Build and push image print("[2/5] Building Docker image...") - dockerfile = textwrap.dedent("""\ + # Only COPY DB if it has content, otherwise let init_db create fresh + has_db = Path("data/planner.db").exists() and Path("data/planner.db").stat().st_size > 0 + copy_db_line = "COPY data/planner.db /data/planner.db" if has_db else "RUN mkdir -p /data" + dockerfile = textwrap.dedent(f"""\ FROM node:20-slim AS frontend-build WORKDIR /build COPY frontend/package.json frontend/package-lock.json ./ @@ -99,7 +105,7 @@ def deploy(pr_id: str): RUN pip install --no-cache-dir -r requirements.txt COPY backend/ ./backend/ COPY --from=frontend-build /build/dist ./frontend/ - COPY data/planner.db /data/planner.db + {copy_db_line} ENV DB_PATH=/data/planner.db ENV FRONTEND_DIR=/app/frontend ENV DATA_DIR=/data