From cf3ad5f389fa55c6fa8d6e224fa7f92f3006b96e Mon Sep 17 00:00:00 2001 From: LordMathis Date: Fri, 27 Sep 2024 22:34:35 +0200 Subject: [PATCH] Add Dockerfile --- Dockerfile | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..090ff7f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +# Stage 1: Build the frontend +FROM node:20 AS frontend-builder +WORKDIR /app +COPY frontend/package*.json ./ +RUN npm ci +COPY frontend . +RUN npm run build + +# Stage 2: Build the backend +FROM golang:1.23 AS backend-builder +WORKDIR /app +RUN apt-get update && apt-get install -y gcc musl-dev +COPY backend/go.mod backend/go.sum ./ +RUN go mod download +COPY backend . +RUN CGO_ENABLED=1 GOOS=linux go build -o novamd ./cmd/server + +# Stage 3: Final stage +FROM debian:bookworm-slim +WORKDIR /app +COPY --from=backend-builder /app/novamd . +COPY --from=frontend-builder /app/dist ./dist + +RUN mkdir -p /app/data + +# Set default environment variables +ENV NOVAMD_STATIC_PATH=/app/dist +ENV NOVAMD_PORT=8080 +ENV NOVAMD_WORKDIR=/app/data + +EXPOSE 8080 + +CMD ["./novamd"] \ No newline at end of file