26 lines
1,003 B
Docker
26 lines
1,003 B
Docker
# 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.15.0@sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300
|
|
|
|
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"]
|