Add pre-built frontend Docker approach - workaround for Zscaler proxy

Corporate proxy (Zscaler) causes npm to fail inside Docker builds with
'Exit handler never called' error. This approach builds frontend on host
where npm works, then copies pre-built dist/ into Docker image.

New files:
- Dockerfile.prebuilt: Single-stage build, copies frontend/dist
- docker-compose.prebuilt.yml: Uses Dockerfile.prebuilt
- .dockerignore.prebuilt: Allows frontend/dist to be included
- start-docker-quick.sh: Quick restart without rebuild
- DOCKER-PREBUILT-APPROACH.md: Documents workaround and comparison

Benefits:
- Builds in 2-3 minutes (not 15+)
- Works behind corporate proxy
- Simpler to debug
- Faster iteration

Trade-off: Requires npm on host, two-step build process

For production: CI/CD builds frontend + image, pushes to registry
This commit is contained in:
Proudlock
2026-09-07 00:26:48 -04:00
parent 128bdabcb4
commit 67579f13aa
5 changed files with 305 additions and 0 deletions

22
.dockerignore.prebuilt Normal file
View File

@@ -0,0 +1,22 @@
# Dockerignore for pre-built frontend approach
# frontend/dist is INCLUDED (not ignored) for this build
**/node_modules
frontend/src/.plugins-staged
frontend/src/router/routes.gen.js
# Python caches
**/__pycache__
**/*.pyc
.venv
venv
# Local dev and VCS
.git
.gitignore
*.log
.env.local
# Installer artifacts
installer-arch-dev/build
installer-arch-dev/dist