# STEP 1 build executable binary FROM golang:1.17.3-alpine3.13@sha256:33c95bc78fa434bae90c45d04e5a02612492acbb7118f35538a56ee0646c1bb7 AS builder ENV FILTRON_VERSION="v0.2.0" WORKDIR $GOPATH/src/github.com/asciimoo/filtron RUN apk upgrade --no-cache && \ apk add --no-cache tar git curl && \ curl -L "https://github.com/asciimoo/filtron/archive/${FILTRON_VERSION}.tar.gz" | tar xvz --strip 1 RUN go get -d -v && gofmt -l ./ && go build . # STEP 2 build the image including only the binary FROM alpine:3.16.1@sha256:7580ece7963bfa863801466c0a488f11c86f85d9988051a9f9c68cb27f6b7872 RUN apk --no-cache add ca-certificates && \ adduser -D -h /usr/local/filtron -s /bin/false filtron filtron COPY --from=builder /go/src/github.com/asciimoo/filtron/example_rules.json /etc/filtron/rules.json COPY --from=builder /go/src/github.com/asciimoo/filtron/filtron /usr/local/filtron/filtron EXPOSE 3000 USER filtron ENTRYPOINT ["/usr/local/filtron/filtron", "--rules", "/etc/filtron/rules.json"]