# Wails Server Mode Dockerfile # Multi-stage build for minimal image size # Build stage FROM golang:alpine AS builder WORKDIR /app # Install build dependencies RUN apk add --no-cache git # Copy source code COPY . . # Remove local replace directive if present (for production builds) RUN sed -i '/^replace/d' go.mod || true # Download dependencies RUN go mod tidy # Build the server binary RUN go build -tags server -ldflags="-s -w" -o server . # Runtime stage - minimal image FROM gcr.io/distroless/static-debian12 # Copy the binary COPY --from=builder /app/server /server # Copy frontend assets COPY --from=builder /app/frontend/dist /frontend/dist # Expose the default port EXPOSE 8080 # Bind to all interfaces (required for Docker) # Can be overridden at runtime with -e WAILS_SERVER_HOST=... ENV WAILS_SERVER_HOST=0.0.0.0 # Run the server ENTRYPOINT ["/server"]