37 lines
740 B
Docker
37 lines
740 B
Docker
FROM oven/bun:1.3-alpine AS frontend-build
|
|
|
|
WORKDIR /src/frontend
|
|
|
|
COPY frontend/package.json frontend/bun.lock ./
|
|
RUN bun install --frozen-lockfile
|
|
|
|
COPY frontend/ ./
|
|
RUN bun run build
|
|
|
|
FROM golang:1.23-alpine AS backend-build
|
|
|
|
WORKDIR /src/backend
|
|
|
|
COPY backend/go.mod backend/go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY backend/ ./
|
|
COPY --from=frontend-build /src/frontend/dist /src/backend/web/dist
|
|
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /out/driveflow-allinone .
|
|
|
|
FROM alpine:3.20
|
|
|
|
WORKDIR /app
|
|
|
|
RUN addgroup -S app && adduser -S -G app -h /app app && \
|
|
mkdir -p /app/data && chown -R app:app /app
|
|
|
|
COPY --from=backend-build /out/driveflow-allinone /app/driveflow-allinone
|
|
|
|
USER app
|
|
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["/app/driveflow-allinone"]
|