FROM golang:1.17 as builder WORKDIR /go/src/mikefarah/yq COPY . /go/src/mikefarah/yq RUN CGO_ENABLED=0 go build . RUN ./scripts/test.sh RUN ./scripts/acceptance.sh # Choose alpine as a base image to make this useful for CI, as many # CI tools expect an interactive shell inside the container FROM alpine:3.13.5 as production RUN mkdir /home/yq/ RUN addgroup -g 1000 yq && \ adduser -u 1000 -G yq -s /bin/bash -h /home/yq -D yq RUN chown -R yq:yq /home/yq/ COPY --from=builder /go/src/mikefarah/yq/yq /usr/bin/yq RUN chmod +x /usr/bin/yq ARG VERSION=none LABEL version=${VERSION} USER yq WORKDIR /workdir ENTRYPOINT ["/usr/bin/yq"]