fix(deploy): bump Dockerfile Node from 20-alpine to 22-alpine
Some checks failed
Build & Deploy to EasyPanel / build-and-deploy (push) Has been cancelled
Lint & Test / build-check (push) Has been cancelled

Astro 6.x requires Node >=22.12.0. The previous Dockerfile used
node:20-alpine, which the Astro CLI rejected with:

  Node.js v20.20.2 is not supported by Astro!
  Please upgrade Node.js to a supported version: ">=22.12.0"

EasyPanel pulled the change, ran the build, and failed at
`RUN npm run build`. Bumping to node:22-alpine fixes it.

Also added two 'common failure' sections to docs/ci-setup.md
covering the nixpacks 'No start command' and Node version
mismatch errors we just hit.
This commit is contained in:
hermes
2026-06-09 13:33:14 +07:00
parent d73e48351f
commit 21a538cbb8
2 changed files with 15 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
# =====================================================================
# Stage 1: Build the Astro static site
# =====================================================================
FROM node:20-alpine AS builder
FROM node:22-alpine AS builder
WORKDIR /app

View File

@@ -73,6 +73,20 @@ curl -sS -X POST \
A 2xx response = the panel accepted the trigger. The service will start
rebuilding/redploying in the EasyPanel dashboard.
## Common failure: "No start command could be found" (nixpacks)
Astro builds to static files in `dist/` — there is no Node server to run.
Nixpacks tries to find a `start` command and fails. The Dockerfile in
this repo handles this with a two-stage build (node:22-alpine build +
nginx:1.27-alpine serve).
## Common failure: "Node.js v20.x is not supported by Astro"
Astro 6 requires Node `>=22.12.0`. The Dockerfile uses `node:22-alpine`.
If you see this error, the panel is probably reading a stale `node:20`
cached image. Push an empty commit to force a rebuild, or clear the
panel's image cache from the EasyPanel UI.
## Common failure: "Failed to sync changes" (HTTP 500)
This is a **server-side** error, not a payload problem. It usually means: