Files
go-micro-service/Dockerfile
Mads Smed 5fdb97b03d
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 42s
use 1.25
2025-11-23 16:36:57 +01:00

40 lines
862 B
Docker

# ------------------------------------------------------------
# 1. Build stage
# ------------------------------------------------------------
FROM golang:1.25-alpine AS builder
# Install build tools
RUN apk add --no-cache git
WORKDIR /app
# Download dependencies first (better caching)
COPY go.mod go.sum ./
RUN go mod download
# Copy source
COPY . .
# Build statically for small final image
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o server .
# ------------------------------------------------------------
# 2. Final minimal image
# ------------------------------------------------------------
FROM alpine:3.20
# Add non-root user for security
RUN adduser -D -g '' appuser
WORKDIR /app
# Copy compiled binary
COPY --from=builder /app/server .
# Expose Gin port (change if your app uses another)
EXPOSE 8080
USER appuser
CMD ["./server"]