diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c4abe44 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +dist +pb_data \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..532712c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# ----------------------- +# 1. Frontend build stage +# ----------------------- +FROM oven/bun:latest AS frontend-builder + +COPY /front-end /repo/front-end +WORKDIR /repo/front-end + +RUN bun install && bun run build + +# ----------------------- +# 2. Backend build stage +# ----------------------- +FROM golang:1.24.5-alpine AS backend-builder + +COPY /back-end /repo/back-end +WORKDIR /repo/back-end + +RUN go build -o server . + +# ----------------------- +# 3. Final stage +# ----------------------- +FROM alpine:latest + +# Set up working directory +WORKDIR /app + +# Copy Go binary +COPY --from=backend-builder /repo/back-end/server /app/server + +# Copy frontend assets +COPY --from=frontend-builder /repo/front-end/dist /app/pb_public + +# Set entrypoint +ENTRYPOINT [ + "./server", + "--dir", + "/pb_data", + "serve", + "--http", + "127.0.0.1:8090" +]