benthos-collector.Dockerfile
Rama main · réplica de lectura del repositorio original.
FROM --platform=$BUILDPLATFORM golang:1.27.3-alpine3.23@sha256:5d5113301ffcac84e2bfb20c42648803fecaea6789c89bb9b66884e18cbb30a7 AS builder
RUN apk add --update --no-cache ca-certificates make git curl
ARG TARGETPLATFORM
WORKDIR /src
ARG GOPROXY
ENV CGO_ENABLED=0
ENV GOCACHE=/go/cache
ENV GOMODCACHE=/go/pkg/mod
COPY --link go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/go/cache \
go mod download -x
COPY --link collector/go.mod collector/go.sum ./collector/
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/go/cache \
go mod download -C ./collector -x
ARG VERSION
COPY --link . .
RUN chmod +x entrypoint.sh
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/go/cache \
go build -C ./collector -ldflags "-X main.version=${VERSION}" -o /usr/local/bin/benthos ./cmd
FROM alpine:3.24.3@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a
RUN apk add --update --no-cache ca-certificates tzdata bash
SHELL ["/bin/bash", "-c"]
# This is so we can reuse presets in development
WORKDIR /etc/benthos
COPY cloudevents.spec.json /etc/benthos/
COPY collector/benthos/presets /etc/benthos/presets
COPY --link --from=builder /usr/local/bin/benthos /usr/local/bin/
COPY --link --from=builder /src/entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh", "/usr/local/bin/benthos"]