72d94170b4
Haskell backend: Orb HTTP framework, JSON-only API Frontend: Mithril.js SPA with TypeScript, Neo Brutalism CSS Dockerized build via flipstone/haskell-tools image Routes: GET /api/health — health check Build: ./hs stack build Test: ./hs stack test Run: ./scripts/run
22 lines
664 B
Docker
22 lines
664 B
Docker
FROM debian:bookworm-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates curl tini && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Build timestamp — read at runtime for diagnostics.
|
|
RUN mkdir -p /build && date -u '+%Y-%m-%d %H:%M UTC' > /build/build-time
|
|
|
|
ADD build/sis-server /usr/local/bin/sis-server
|
|
RUN chmod +x /usr/local/bin/sis-server
|
|
|
|
# Frontend static files are served separately (e.g. nginx, CDN, or
|
|
# a simple static file server). In development, use `npx serve`.
|
|
ADD frontend/dist /usr/local/share/sis/static
|
|
|
|
ENTRYPOINT ["/usr/bin/tini", "-s", "--"]
|
|
|
|
EXPOSE 8080
|
|
|
|
CMD ["/usr/local/bin/sis-server", "--port", "8080"]
|