Files
2026-09-10 12:30:42 +02:00

24 lines
808 B
Docker

FROM node:24-bookworm-slim AS frontend
WORKDIR /src/web
COPY web/package*.json ./
RUN npm ci
COPY web/ ./
RUN npm run build
FROM golang:1.26-bookworm AS backend
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
COPY --from=frontend /src/web/dist ./web/dist
RUN CGO_ENABLED=1 go build -trimpath -o /finance-duck ./cmd/finance-duck
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates libstdc++6 && rm -rf /var/lib/apt/lists/* && useradd --uid 10001 --create-home finance && mkdir /data && chown finance:finance /data
COPY --from=backend /finance-duck /usr/local/bin/finance-duck
USER 10001:10001
VOLUME /data
EXPOSE 8080
ENTRYPOINT ["finance-duck"]
CMD ["-data", "/data", "-listen", "0.0.0.0:8080", "-public-url", "http://localhost:8080"]