# syntax=docker/dockerfile:1 # ---- build stage ---------------------------------------------------------- # Fix project name: Internet Use Control — its own image, built from source. FROM golang:1.25-alpine AS build WORKDIR /src RUN apk add --no-cache git COPY go.mod go.sum ./ RUN go mod download COPY . . ARG VERSION=dev RUN CGO_ENABLED=0 GOOS=linux go build \ -trimpath \ -ldflags "-s -w -X main.version=${VERSION}" \ -o /out/control ./cmd/control # ---- runtime stage -------------------------------------------------------- FROM alpine:3.21 RUN apk add --no-cache ca-certificates tzdata wget \ && addgroup -g 10001 -S control \ && adduser -S -D -H -u 10001 -G control control \ && mkdir -p /data && chown control:control /data USER control WORKDIR /app COPY --from=build /out/control /app/control EXPOSE 8791 VOLUME ["/data"] ENTRYPOINT ["/app/control"]