spawner/user-template-01/Dockerfile
XPS\Micro 10b28179fc feat: implement dynamic template system with auto-detection
**Backend (config.py):**
- Add dynamic template loading from USER_TEMPLATE_IMAGES (.env)
- Add template metadata loading from templates.json
- Implement automatic type extraction from image names
- Remove hardcoded template definitions (dev/prod)
- Maintain legacy USER_TEMPLATE_IMAGE for backward compatibility

**Configuration:**
- Add templates.json with metadata for template-01, template-02, template-next
- Update .env.example with new USER_TEMPLATE_IMAGES variable (semicolon-separated)
- Document automatic template type extraction

**Installation (install.sh):**
- Implement auto-detection for all user-template-* directories
- Replace hardcoded template builds with dynamic loop
- Calculate TOTAL_BUILDS dynamically
- Add special handling for Next.js templates

**Documentation:**
- Move MVP_DEPLOYMENT_GUIDE.md to docs/install/DEPLOYMENT_GUIDE.md
- Add "Dynamic Template System" section to CLAUDE.md
- Update docs/install/README.md with Quick Links and dynamic system info
- Add references to deployment guide in CLAUDE.md

**Templates:**
- Reorganize user-template/ → user-template-01/ (Nginx Basic)
- Add user-template-02/ (Nginx Advanced)
- Keep user-template-next/ unchanged

**Benefits:**
- Unlimited number of templates (no longer hardcoded to 2)
- Metadata-driven display in dashboard
- Automatic image discovery and building
- Extensible without code changes

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-01 09:04:59 +01:00

23 lines
586 B
Docker

FROM nginxinc/nginx-unprivileged:alpine
# Wechsel zu root um Pakete zu installieren
USER root
# gettext für envsubst installieren
RUN apk add --no-cache gettext
# HTML-Template kopieren
COPY index.html /usr/share/nginx/html/index.html.template
# Nginx-Konfiguration kopieren
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Entrypoint Script kopieren und executable machen
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh && \
chmod 777 /usr/share/nginx/html
EXPOSE 8080
# Entrypoint Script starten (läuft als root, startet Nginx)
ENTRYPOINT ["/entrypoint.sh"]