Postmortem: 502 เป็นครั้งคราว เพราะ Next.js เขียน cache ไม่ได้
เจอ EACCES 530 ครั้งใน 24 ชม. ต้นเหตุคือ Dockerfile copy .next เป็น root แล้วสลับ user — แก้ด้วย --chown สองบรรทัด
เว็บเล็ก ๆ ที่รันบนมินิพีซีมีอาการ 502 เป็นครั้งคราว วันละครั้งบ้าง สองวันครั้งบ้าง ดู log แล้วเจอ:
EACCES: permission denied, open '/app/.next/server/app/index.rsc'
Failed to update prerender cache for /indexสาเหตุ
Dockerfile ทำ COPY --from=build /app/.next ./.next เป็นของ root แล้วค่อย USER node — พอถึงจังหวะ revalidate ของ ISR เขียนไม่ได้ ก็ตอบ 502
วิธีแก้
COPY --chown=node:node --from=build /app/.next ./.next
COPY --chown=node:node --from=build /app/public ./public
RUN mkdir -p /app/.next/cache && chown -R node:node /app/.next
USER nodeหลัง rebuild: EACCES = 0 และไม่มี 502 อีก บทเรียนคือ error ที่ดูเหมือน network มักมาจากสิทธิ์ไฟล์ใน container