Files
mqtt_explorer/Dockerfile
Gilles Soulier 383ad292d3 first
2025-12-24 14:47:39 +01:00

30 lines
774 B
Docker

# Build frontend
FROM node:20-alpine AS frontend
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN if [ -f package-lock.json ]; then npm ci; else npm install; fi
COPY frontend ./
RUN npm run build
# Build backend
FROM golang:1.23-alpine AS backend
WORKDIR /app/backend
RUN apk add --no-cache git
COPY backend/go.mod ./
COPY backend/go.sum ./
RUN go mod download
COPY backend ./
RUN CGO_ENABLED=0 go build -o /app/bin/server ./cmd/server
# Final image
FROM alpine:3.20
RUN adduser -D -H -u 10001 app && apk add --no-cache ca-certificates \
&& mkdir -p /data /app \
&& chown -R app:app /data /app
WORKDIR /app
COPY --from=backend /app/bin/server /app/server
COPY --from=frontend /app/frontend/dist /app/frontend/dist
EXPOSE 8088
ENV PORT=8088
CMD ["/app/server"]