FROM golang:1.22-alpine AS build WORKDIR /src ARG BUILD_REVISION=devel ARG BUILD_TIME=unknown ARG BUILD_DIRTY=unknown COPY go.mod ./ RUN go mod download COPY . ./ RUN go build -trimpath -ldflags="-s -w -X orchestra/internal/buildinfo.Revision=${BUILD_REVISION} -X orchestra/internal/buildinfo.Time=${BUILD_TIME} -X orchestra/internal/buildinfo.Dirty=${BUILD_DIRTY}" -o /out/orchestra ./cmd/orchestra FROM alpine:3.21 RUN adduser -D -u 10001 orchestra WORKDIR /app COPY --from=build /out/orchestra /app/orchestra COPY deploy/docker-api-entrypoint.sh /app/docker-api-entrypoint.sh RUN mkdir /data && chown orchestra:orchestra /data ENV ORCHESTRA_DATA=/data ORCHESTRA_PORT=9145 VOLUME ["/data"] EXPOSE 9145 ENTRYPOINT ["/app/docker-api-entrypoint.sh"]