mirror of
https://github.com/bgp/stayrtr.git
synced 2024-05-06 15:54:54 +00:00
Docker cleanup
* Reduce all Dockerfiles to a single multi-staged one * Updates GitHub Actions and also push the current git shortened SHA
This commit is contained in:
@@ -26,9 +26,10 @@ jobs:
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./Dockerfile.stayrtr.prod
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: rpki/stayrtr:latest
|
||||
tags: rpki/stayrtr:latest,rpki/stayrtr:${GITHUB_SHA::8}
|
||||
target: stayrtr
|
||||
|
||||
- name: Image digest (stayrtr)
|
||||
run: echo ${{ steps.docker_build_stayrtr.outputs.digest }}
|
||||
@@ -38,9 +39,10 @@ jobs:
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./Dockerfile.rtrmon.prod
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: rpki/rtrmon:latest
|
||||
tags: rpki/rtrmon:latest,rpki/rtrmon:${GITHUB_SHA::8}
|
||||
target: rtrmon
|
||||
|
||||
- name: Image digest (rtrmon)
|
||||
run: echo ${{ steps.docker_build_rtrmon.outputs.digest }}
|
||||
@@ -50,9 +52,10 @@ jobs:
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: ./
|
||||
file: ./Dockerfile.rtrdump.prod
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: rpki/rtrdump:latest
|
||||
tags: rpki/rtrdump:latest,rpki/rtrdump:${GITHUB_SHA::8}
|
||||
target: rtrdump
|
||||
|
||||
- name: Image digest (rtrdump)
|
||||
run: echo ${{ steps.docker_build_rtrdump.outputs.digest }}
|
||||
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
###############
|
||||
# Build stage #
|
||||
###############
|
||||
ARG src_dir="/stayrtr"
|
||||
|
||||
FROM golang:alpine as builder
|
||||
ARG src_dir
|
||||
|
||||
RUN apk --update --no-cache add git make && \
|
||||
mkdir -p ${src_dir}
|
||||
|
||||
WORKDIR ${src_dir}
|
||||
COPY . .
|
||||
|
||||
RUN SUFFIX= make build-all
|
||||
|
||||
################
|
||||
# Keygen stage #
|
||||
################
|
||||
FROM alpine:latest as keygen
|
||||
|
||||
RUN apk --update --no-cache add openssl
|
||||
RUN openssl ecparam -genkey -name prime256v1 -noout -outform pem > private.pem
|
||||
|
||||
#################
|
||||
# StayRTR stage #
|
||||
#################
|
||||
FROM alpine:latest AS stayrtr
|
||||
|
||||
RUN apk --update --no-cache add ca-certificates && \
|
||||
adduser -S -D -H -h / rtr
|
||||
USER rtr
|
||||
COPY --from=builder /stayrtr/dist/stayrtr /
|
||||
COPY --from=keygen /private.pem /private.pem
|
||||
ENTRYPOINT ["./stayrtr"]
|
||||
|
||||
#################
|
||||
# RTRdump stage #
|
||||
#################
|
||||
FROM alpine:latest AS rtrdump
|
||||
|
||||
RUN apk --update --no-cache add ca-certificates && \
|
||||
adduser -S -D -H -h / rtr
|
||||
USER rtr
|
||||
COPY --from=builder /stayrtr/dist/rtrdump /
|
||||
ENTRYPOINT ["./rtrdump"]
|
||||
|
||||
#################
|
||||
# RTRmon stage #
|
||||
#################
|
||||
FROM alpine:latest AS rtrmon
|
||||
|
||||
RUN apk --update --no-cache add ca-certificates && \
|
||||
adduser -S -D -H -h / rtr
|
||||
USER rtr
|
||||
COPY --from=builder /stayrtr/dist/rtrmon /
|
||||
ENTRYPOINT ["./rtrmon"]
|
||||
@@ -1,23 +0,0 @@
|
||||
ARG src_dir="/rtrdump"
|
||||
|
||||
FROM golang:alpine as builder
|
||||
ARG src_dir
|
||||
ARG LDFLAGS=""
|
||||
|
||||
RUN apk --update --no-cache add git && \
|
||||
mkdir -p ${src_dir}
|
||||
|
||||
WORKDIR ${src_dir}
|
||||
COPY . .
|
||||
|
||||
RUN go build -ldflags "${LDFLAGS}" cmd/rtrdump/rtrdump.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}/rtrdump /
|
||||
ENTRYPOINT ["./rtrdump"]
|
||||
@@ -1,17 +0,0 @@
|
||||
ARG src_uri=github.com/bgp/stayrtr/cmd/rtrdump
|
||||
|
||||
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/rtrdump /
|
||||
ENTRYPOINT ["./rtrdump"]
|
||||
@@ -1,23 +0,0 @@
|
||||
ARG src_dir="/rtrmon"
|
||||
|
||||
FROM golang:alpine as builder
|
||||
ARG src_dir
|
||||
ARG LDFLAGS=""
|
||||
|
||||
RUN apk --update --no-cache add git && \
|
||||
mkdir -p ${src_dir}
|
||||
|
||||
WORKDIR ${src_dir}
|
||||
COPY . .
|
||||
|
||||
RUN go build -ldflags "${LDFLAGS}" 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"]
|
||||
@@ -1,17 +0,0 @@
|
||||
ARG src_uri=github.com/bgp/stayrtr/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"]
|
||||
@@ -1,28 +0,0 @@
|
||||
ARG src_dir="/stayrtr"
|
||||
|
||||
FROM golang:alpine as builder
|
||||
ARG src_dir
|
||||
ARG LDFLAGS=""
|
||||
|
||||
RUN apk --update --no-cache add git && \
|
||||
mkdir -p ${src_dir}
|
||||
|
||||
WORKDIR ${src_dir}
|
||||
COPY . .
|
||||
|
||||
RUN go build -ldflags "${LDFLAGS}" cmd/stayrtr/stayrtr.go
|
||||
|
||||
FROM alpine:latest as keygen
|
||||
|
||||
RUN apk --update --no-cache add openssl
|
||||
RUN openssl ecparam -genkey -name prime256v1 -noout -outform pem > private.pem
|
||||
|
||||
FROM alpine:latest
|
||||
ARG src_dir
|
||||
|
||||
RUN apk --update --no-cache add ca-certificates && \
|
||||
adduser -S -D -H -h / rtr
|
||||
USER rtr
|
||||
|
||||
COPY --from=keygen /private.pem /private.pem
|
||||
ENTRYPOINT ["./stayrtr"]
|
||||
@@ -1,23 +0,0 @@
|
||||
ARG src_uri=github.com/bgp/stayrtr/cmd/stayrtr
|
||||
|
||||
FROM golang:alpine as builder
|
||||
ARG src_uri
|
||||
|
||||
RUN apk --update --no-cache add git && \
|
||||
go get -u $src_uri
|
||||
|
||||
FROM alpine:latest as keygen
|
||||
|
||||
RUN apk --update --no-cache add openssl
|
||||
RUN openssl ecparam -genkey -name prime256v1 -noout -outform pem > private.pem
|
||||
|
||||
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/stayrtr /
|
||||
COPY --from=keygen /private.pem /private.pem
|
||||
ENTRYPOINT ["./stayrtr"]
|
||||
@@ -4,7 +4,7 @@ GOOS ?= linux
|
||||
ARCH ?= $(shell uname -m)
|
||||
BUILDINFOSDET ?=
|
||||
|
||||
DOCKER_REPO := bgp/
|
||||
DOCKER_REPO := rpki/
|
||||
STAYRTR_NAME := stayrtr
|
||||
STAYRTR_VERSION := $(shell git describe --tags $(git rev-list --tags --max-count=1))
|
||||
VERSION_PKG := $(shell echo $(STAYRTR_VERSION) | sed 's/^v//g')
|
||||
@@ -13,14 +13,16 @@ LICENSE := BSD-3
|
||||
URL := https://github.com/bgp/stayrtr
|
||||
DESCRIPTION := StayRTR: a RPKI-to-Router server
|
||||
BUILDINFOS := ($(shell date +%FT%T%z)$(BUILDINFOSDET))
|
||||
LDFLAGS := '-X main.version=$(STAYRTR_VERSION) -X main.buildinfos=$(BUILDINFOS)'
|
||||
LDFLAGS ?= '-X main.version=$(STAYRTR_VERSION) -X main.buildinfos=$(BUILDINFOS)'
|
||||
|
||||
RTRDUMP_NAME := rtrdump
|
||||
RTRMON_NAME := rtrmon
|
||||
|
||||
OUTPUT_STAYRTR := $(DIST_DIR)stayrtr-$(STAYRTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION)
|
||||
OUTPUT_RTRDUMP := $(DIST_DIR)rtrdump-$(STAYRTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION)
|
||||
OUTPUT_RTRMON := $(DIST_DIR)rtrmon-$(STAYRTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION)
|
||||
SUFFIX ?= -$(STAYRTR_VERSION)-$(GOOS)-$(ARCH)$(EXTENSION)
|
||||
|
||||
OUTPUT_STAYRTR := $(DIST_DIR)stayrtr$(SUFFIX)
|
||||
OUTPUT_RTRDUMP := $(DIST_DIR)rtrdump$(SUFFIX)
|
||||
OUTPUT_RTRMON := $(DIST_DIR)rtrmon$(SUFFIX)
|
||||
|
||||
.PHONY: vet
|
||||
vet:
|
||||
@@ -39,6 +41,9 @@ prepare:
|
||||
clean:
|
||||
rm -rf $(DIST_DIR)
|
||||
|
||||
.PHONY: build-all
|
||||
build-all: build-stayrtr build-rtrdump build-rtrmon
|
||||
|
||||
.PHONY: build-stayrtr
|
||||
build-stayrtr: prepare
|
||||
go build -ldflags $(LDFLAGS) -o $(OUTPUT_STAYRTR) cmd/stayrtr/stayrtr.go
|
||||
@@ -51,17 +56,11 @@ build-rtrdump:
|
||||
build-rtrmon:
|
||||
go build -ldflags $(LDFLAGS) -o $(OUTPUT_RTRMON) cmd/rtrmon/rtrmon.go
|
||||
|
||||
.PHONY: docker-stayrtr
|
||||
docker-stayrtr:
|
||||
docker build -t $(DOCKER_REPO)$(STAYRTR_NAME):$(STAYRTR_VERSION) --build-arg LDFLAGS=$(LDFLAGS) -f Dockerfile.stayrtr .
|
||||
|
||||
.PHONY: docker-rtrdump
|
||||
docker-rtrdump:
|
||||
docker build -t $(DOCKER_REPO)$(RTRDUMP_NAME):$(STAYRTR_VERSION) --build-arg LDFLAGS=$(LDFLAGS) -f Dockerfile.rtrdump .
|
||||
|
||||
.PHONY: docker-rtrmon
|
||||
docker-rtrmon:
|
||||
docker build -t $(DOCKER_REPO)$(RTRMON_NAME):$(STAYRTR_VERSION) --build-arg LDFLAGS=$(LDFLAGS) -f Dockerfile.rtrmon .
|
||||
.PHONY: docker
|
||||
docker:
|
||||
docker build -t $(DOCKER_REPO)$(STAYRTR_NAME) --target stayrtr .
|
||||
docker build -t $(DOCKER_REPO)$(RTRDUMP_NAME) --target rtrdump .
|
||||
docker build -t $(DOCKER_REPO)$(RTRMON_NAME) --target rtrmon .
|
||||
|
||||
.PHONY: package-deb-stayrtr
|
||||
package-deb-stayrtr: prepare
|
||||
|
||||
Reference in New Issue
Block a user