# syntax=docker/dockerfile:1 FROM golang:1.26-alpine AS build WORKDIR /src COPY go.mod ./ COPY cmd ./cmd COPY internal ./internal COPY pkg ./pkg RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o /out/scout-server ./cmd/scout-server FROM alpine:3.22 RUN addgroup -S scout && adduser -S -G scout scout \ && apk add --no-cache ca-certificates tzdata WORKDIR /app COPY --from=build /out/scout-server /app/scout-server RUN mkdir -p /var/lib/scout && chown -R scout:scout /var/lib/scout /app USER scout ENV SCOUT_ENV=production \ SCOUT_ADDR=:8080 \ SCOUT_DATA_DIR=/var/lib/scout EXPOSE 8080 VOLUME ["/var/lib/scout"] ENTRYPOINT ["/app/scout-server"]