# syntax=docker/dockerfile:1

FROM golang:1.25.1-alpine AS build
WORKDIR /src
COPY run/go.mod ./
RUN go mod download
COPY run/ ./
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -o /out/run ./cmd/run

FROM alpine:3.21
RUN addgroup -S run && adduser -S run -G run
WORKDIR /app
COPY --from=build /out/run /app/run
RUN mkdir -p /data/run/workspace /data/run/spool && chown -R run:run /data/run
USER run
ENV RUN_MODE=worker \
    RUN_PLATFORM_URL=http://platform:8080 \
    RUN_ENDPOINT_ID=run-docker \
    RUN_DISPLAY_NAME="Docker Run" \
    RUN_VERSION=0.1.0 \
    RUN_REGISTRATION_TOKEN=local-registration \
    RUN_WORKSPACE_ROOT=/data/run/workspace \
    RUN_SPOOL_ROOT=/data/run/spool \
    RUN_MAX_JOBS=1 \
    RUN_HEARTBEAT_INTERVAL_MS=15000 \
    RUN_POLL_INTERVAL_MS=2000 \
    RUN_RETRY_BACKOFF_MS=1000
ENTRYPOINT ["/app/run"]

