diff --git a/.travis.yml b/.travis.yml index dea61b4..f6730a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,6 +32,9 @@ jobs: - GOOS=linux make build-rtrdump - GOOS=darwin make build-rtrdump - GOOS=windows EXTENSION=.exe make build-rtrdump + - GOOS=linux make build-rtrmon + - GOOS=darwin make build-rtrmon + - GOOS=windows EXTENSION=.exe make build-rtrmon - make package-deb-gortr package-rpm-gortr deploy: provider: releases diff --git a/Dockerfile.rtrmon b/Dockerfile.rtrmon new file mode 100644 index 0000000..07a4610 --- /dev/null +++ b/Dockerfile.rtrmon @@ -0,0 +1,22 @@ +ARG src_dir="/rtrmon" + +FROM golang:alpine as builder +ARG src_dir + +RUN apk --update --no-cache add git && \ + mkdir -p ${src_dir} + +WORKDIR ${src_dir} +COPY . . + +RUN go build cmd/rtrmon/rtrmon.go + +FROM alpine:latest +ARG src_dir + +RUN apk --update --no-cache add ca-certificates && \ + adduser -S -D -H -h / rtr +USER rtr + +COPY --from=builder ${src_dir}/rtrmon / +ENTRYPOINT ["./rtrmon"] diff --git a/Dockerfile.rtrmon.prod b/Dockerfile.rtrmon.prod new file mode 100644 index 0000000..7d6c130 --- /dev/null +++ b/Dockerfile.rtrmon.prod @@ -0,0 +1,17 @@ +ARG src_uri=github.com/cloudflare/gortr/cmd/rtrmon + +FROM golang:alpine as builder +ARG src_uri + +RUN apk --update --no-cache add git && \ + go get -u $src_uri + +FROM alpine:latest +ARG src_uri + +RUN apk --update --no-cache add ca-certificates && \ + adduser -S -D -H -h / rtr +USER rtr + +COPY --from=builder /go/bin/rtrmon / +ENTRYPOINT ["./rtrmon"] diff --git a/Makefile b/Makefile index e936f1e..37bfeed 100644 --- a/Makefile +++ b/Makefile @@ -15,10 +15,12 @@ DESCRIPTION := GoRTR: a RPKI-to-Router server BUILDINFOS := ($(shell date +%FT%T%z)$(BUILDINFOSDET)) LDFLAGS := '-X main.version=$(GORTR_VERSION) -X main.buildinfos=$(BUILDINFOS)' -RTRDUMP_NAME := rtrdump +RTRDUMP_NAME := rtrdump +RTRMON_NAME := rtrmon OUTPUT_GORTR := $(DIST_DIR)gortr-$(GORTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION) OUTPUT_RTRDUMP := $(DIST_DIR)rtrdump-$(GORTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION) +OUTPUT_RTRMON := $(DIST_DIR)rtrmon-$(GORTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION) .PHONY: vet vet: @@ -49,6 +51,10 @@ build-gortr: prepare build-rtrdump: go build -ldflags $(LDFLAGS) -o $(OUTPUT_RTRDUMP) cmd/rtrdump/rtrdump.go +.PHONY: build-rtrmon +build-rtrmon: + go build -ldflags $(LDFLAGS) -o $(OUTPUT_RTRMON) cmd/rtrmon/rtrmon.go + .PHONY: docker-gortr docker-gortr: docker build -t $(DOCKER_REPO)$(GORTR_NAME):$(GORTR_VERSION) --build-arg LDFLAGS=$(LDFLAGS) -f Dockerfile.gortr . @@ -57,6 +63,10 @@ docker-gortr: docker-rtrdump: docker build -t $(DOCKER_REPO)$(RTRDUMP_NAME):$(GORTR_VERSION) --build-arg LDFLAGS=$(LDFLAGS) -f Dockerfile.rtrdump . +.PHONY: docker-rtrmon +docker-rtrmon: + docker build -t $(DOCKER_REPO)$(RTRMON_NAME):$(GORTR_VERSION) --build-arg LDFLAGS=$(LDFLAGS) -f Dockerfile.rtrmon . + .PHONY: package-deb-gortr package-deb-gortr: prepare fpm -s dir -t deb -n $(GORTR_NAME) -v $(VERSION_PKG) \ @@ -69,7 +79,8 @@ package-deb-gortr: prepare package/gortr.service=/lib/systemd/system/gortr.service \ package/gortr.env=/etc/default/gortr \ cmd/gortr/cf.pub=/usr/share/gortr/cf.pub \ - $(OUTPUT_RTRDUMP)=/usr/bin/rtrdump + $(OUTPUT_RTRDUMP)=/usr/bin/rtrdump \ + $(OUTPUT_RTRMON)=/usr/bin/rtrmon .PHONY: package-rpm-gortr package-rpm-gortr: prepare @@ -83,4 +94,5 @@ package-rpm-gortr: prepare package/gortr.service=/lib/systemd/system/gortr.service \ package/gortr.env=/etc/default/gortr \ cmd/gortr/cf.pub=/usr/share/gortr/cf.pub \ - $(OUTPUT_RTRDUMP)=/usr/bin/rtrdump + $(OUTPUT_RTRDUMP)=/usr/bin/rtrdump \ + $(OUTPUT_RTRMON)=/usr/bin/rtrmon