26 lines
628 B
Docker
26 lines
628 B
Docker
# Frontend build stage
|
|
FROM node:22-alpine AS frontend-builder
|
|
WORKDIR /app
|
|
COPY frontend/package*.json ./
|
|
RUN npm ci
|
|
COPY frontend/ .
|
|
RUN npm run build
|
|
|
|
# Build stage
|
|
FROM golang:latest AS builder
|
|
WORKDIR /app
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
COPY --from=frontend-builder /app/dist ./frontend/dist
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -v -o outfit-voting-abi26 ./cmd/
|
|
|
|
# Final stage
|
|
FROM debian:bookworm-slim
|
|
WORKDIR /root/
|
|
EXPOSE 4000
|
|
COPY --from=builder /app/outfit-voting-abi26 /usr/local/bin/outfit-voting-abi26
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
ENTRYPOINT ["/entrypoint.sh"]
|