From a0c81a6e56bee466ddbae11c08af963eea2d3d5b Mon Sep 17 00:00:00 2001 From: max Date: Thu, 11 Jul 2019 00:37:15 +0800 Subject: [PATCH] chore: added multiple architecture support --- .../frpc/{Dockerfile => Dockerfile.amd64} | 8 ++++-- Dockerfile/frpc/Dockerfile.arm | 13 +++++++++ Dockerfile/frpc/Dockerfile.arm64 | 14 ++++++++++ .../frps/{Dockerfile => Dockerfile.amd64} | 7 +++-- Dockerfile/frps/Dockerfile.arm | 14 ++++++++++ Dockerfile/frps/Dockerfile.arm64 | 14 ++++++++++ Makefile | 28 +++++++++++++++---- 7 files changed, 87 insertions(+), 11 deletions(-) rename Dockerfile/frpc/{Dockerfile => Dockerfile.amd64} (56%) create mode 100644 Dockerfile/frpc/Dockerfile.arm create mode 100644 Dockerfile/frpc/Dockerfile.arm64 rename Dockerfile/frps/{Dockerfile => Dockerfile.amd64} (58%) create mode 100644 Dockerfile/frps/Dockerfile.arm create mode 100644 Dockerfile/frps/Dockerfile.arm64 diff --git a/Dockerfile/frpc/Dockerfile b/Dockerfile/frpc/Dockerfile.amd64 similarity index 56% rename from Dockerfile/frpc/Dockerfile rename to Dockerfile/frpc/Dockerfile.amd64 index 0b1ac3ee..4b7fbc93 100644 --- a/Dockerfile/frpc/Dockerfile +++ b/Dockerfile/frpc/Dockerfile.amd64 @@ -1,11 +1,13 @@ FROM golang AS builder WORKDIR /frp +COPY go.mod . +COPY go.sum . +RUN go mod download COPY . . -RUN make +RUN make frpc-amd64 FROM golang WORKDIR / -COPY --from=builder /frp/bin/frpc /usr/local/bin/frpc +COPY --from=builder /frp/bin/amd64/frpc /usr/local/bin/frpc COPY --from=builder /frp/conf/frpc.ini /etc/frpc.ini CMD ["frpc", "--config", "/etc/frpc.ini"] - diff --git a/Dockerfile/frpc/Dockerfile.arm b/Dockerfile/frpc/Dockerfile.arm new file mode 100644 index 00000000..607e1782 --- /dev/null +++ b/Dockerfile/frpc/Dockerfile.arm @@ -0,0 +1,13 @@ +FROM golang AS builder +WORKDIR /frp +COPY go.mod . +COPY go.sum . +RUN go mod download +COPY . . +RUN make frpc-arm + +FROM arm32v7/golang:alpine +WORKDIR / +COPY --from=builder /frp/bin/arm/frpc /usr/local/bin/frpc +COPY --from=builder /frp/conf/frpc.ini /etc/frpc.ini +CMD ["frpc", "--config", "/etc/frpc.ini"] diff --git a/Dockerfile/frpc/Dockerfile.arm64 b/Dockerfile/frpc/Dockerfile.arm64 new file mode 100644 index 00000000..76533373 --- /dev/null +++ b/Dockerfile/frpc/Dockerfile.arm64 @@ -0,0 +1,14 @@ +FROM golang AS builder +WORKDIR /frp +COPY go.mod . +COPY go.sum . +COPY Makefile . +RUN make fmt +COPY . . +RUN make frpc-arm64 + +FROM arm64v8/golang:alpine +WORKDIR / +COPY --from=builder /frp/bin/arm64/frpc /usr/local/bin/frpc +COPY --from=builder /frp/conf/frpc.ini /etc/frpc.ini +CMD ["frpc", "--config", "/etc/frpc.ini"] diff --git a/Dockerfile/frps/Dockerfile b/Dockerfile/frps/Dockerfile.amd64 similarity index 58% rename from Dockerfile/frps/Dockerfile rename to Dockerfile/frps/Dockerfile.amd64 index 96d1d30f..4e74df92 100644 --- a/Dockerfile/frps/Dockerfile +++ b/Dockerfile/frps/Dockerfile.amd64 @@ -1,11 +1,14 @@ FROM golang AS builder WORKDIR /frp +COPY go.mod . +COPY go.sum . +RUN go mod download COPY . . -RUN make +RUN make frps-amd64 FROM golang WORKDIR / -COPY --from=builder /frp/bin/frps /usr/local/bin/frps +COPY --from=builder /frp/bin/amd64/frps /usr/local/bin/frps COPY --from=builder /frp/conf/frps.ini /etc/frps.ini EXPOSE 7000 7500 CMD ["frps", "--config", "/etc/frps.ini"] diff --git a/Dockerfile/frps/Dockerfile.arm b/Dockerfile/frps/Dockerfile.arm new file mode 100644 index 00000000..67128cfc --- /dev/null +++ b/Dockerfile/frps/Dockerfile.arm @@ -0,0 +1,14 @@ +FROM golang AS builder +WORKDIR /frp +COPY go.mod . +COPY go.sum . +RUN go mod download +COPY . . +RUN make frps-arm + +FROM arm32v7/golang:alpine +WORKDIR / +COPY --from=builder /frp/bin/arm/frps /usr/local/bin/frps +COPY --from=builder /frp/conf/frps.ini /etc/frps.ini +EXPOSE 7000 7500 +CMD ["frps", "--config", "/etc/frps.ini"] diff --git a/Dockerfile/frps/Dockerfile.arm64 b/Dockerfile/frps/Dockerfile.arm64 new file mode 100644 index 00000000..3c4b6c2c --- /dev/null +++ b/Dockerfile/frps/Dockerfile.arm64 @@ -0,0 +1,14 @@ +FROM golang AS builder +WORKDIR /frp +COPY go.mod . +COPY go.sum . +RUN go mod download +COPY . . +RUN make frps-arm64 + +FROM arm64v8/golang:alpine +WORKDIR / +COPY --from=builder /frp/bin/arm64/frps /usr/local/bin/frps +COPY --from=builder /frp/conf/frps.ini /etc/frps.ini +EXPOSE 7000 7500 +CMD ["frps", "--config", "/etc/frps.ini"] diff --git a/Makefile b/Makefile index f737d3f5..dc0c57a7 100644 --- a/Makefile +++ b/Makefile @@ -16,12 +16,28 @@ file: fmt: go fmt ./... - -frps: - go build -o bin/frps ./cmd/frps -frpc: - go build -o bin/frpc ./cmd/frpc +frps: frps-arm frps-arm64 frps-amd64 + +frps-arm: + GOARCH=arm go build -o bin/arm/frps ./cmd/frps + +frps-arm64: + GOARCH=arm64 go build -o bin/arm64/frps ./cmd/frps + +frps-amd64: + GOARCH=amd64 go build -o bin/amd64/frps ./cmd/frps + +frpc: frpc-arm frpc-arm64 frpc-amd64 + +frpc-arm: + GOOS=linux GOARCH=arm go build -o bin/arm/frpc ./cmd/frpc + +frpc-arm64: + GOOS=linux GOARCH=arm64 go build -o bin/arm64/frpc ./cmd/frpc + +frpc-amd64: + GOOS=linux GOARCH=amd64 go build -o bin/amd64/frpc ./cmd/frpc test: gotest @@ -37,7 +53,7 @@ ci: go test -count=1 -p=1 -v ./tests/... alltest: gotest ci - + clean: rm -f ./bin/frpc rm -f ./bin/frps