24 lines
808 B
Docker
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"]
|