FROM golang:1.26 AS builder

WORKDIR /go/src/github.com/ory/hydra

COPY oryx/go.mod oryx/go.mod
COPY oryx/go.sum oryx/go.sum
                

RUN apt-get update && apt-get upgrade -y &&\
    mkdir -p ./internal/httpclient

COPY go.mod go.sum ./
COPY internal/httpclient/go.* ./internal/httpclient/

ENV CGO_ENABLED=1

RUN go mod download

COPY . .
RUN go build -ldflags="-extldflags=-static" -tags sqlite,sqlite_omit_load_extension -o /usr/bin/hydra

#########################

FROM gcr.io/distroless/static-debian12:debug-nonroot AS runner

COPY --from=builder /usr/bin/hydra /usr/bin/hydra

# Declare the standard ports used by hydra (4444 for public service endpoint, 4445 for admin service endpoint)
EXPOSE 4444 4445

ENTRYPOINT ["hydra"]
CMD ["serve", "all"]
