# This Dockerfile is used for building the worker pool binary itself

# Buildtime environment
# -------------------------------------------
# pinned because of https://github.com/moby/moby/issues/45935
FROM golang:1.20.5-alpine as build
WORKDIR /app

RUN apk update && apk add gcc binutils-gold musl-dev

COPY go.mod .
COPY go.sum .
COPY /api ./api
COPY /ee ./ee
COPY /internal ./internal
COPY /pkg ./pkg
COPY /provisioner ./provisioner
COPY /workers ./workers

RUN go build -ldflags '-w -s' -tags ee -a -o ./bin/worker-pool ./workers

# Runtime environment
# ----------------------
FROM alpine:3.16
WORKDIR /app

RUN apk update && apk add curl

COPY --from=build /app/bin/worker-pool /usr/bin/
COPY /internal/opa/config.yaml /app/opa/config.yaml
COPY /internal/opa/policies /app/opa/policies

ENV OPA_CONFIG_FILE_DIR /app/opa

ENTRYPOINT [ "worker-pool" ]
