# syntax=docker/dockerfile:1.7

FROM golang:1.26-alpine AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
ARG VERSION=dev
ARG COMMIT=unknown
ARG BUILD_TIME=unknown
RUN for cmd in master:updater-master agent:updater-agent; do \
      CGO_ENABLED=0 go build \
        -ldflags="-s -w \
          -X main.version=${VERSION} \
          -X main.commit=${COMMIT} \
          -X main.buildTime=${BUILD_TIME}" \
        -o /out/${cmd#*:} ./cmd/${cmd%%:*} || exit 1; \
    done

FROM alpine:3.20
RUN apk add --no-cache docker-cli docker-cli-compose ca-certificates wget
COPY --from=build /out/ /usr/local/bin/
EXPOSE 8080 8090
ENTRYPOINT ["/usr/local/bin/updater-agent"]
