From 6f9ce8452bf0a7b1c96a603fea728ae2d94498a0 Mon Sep 17 00:00:00 2001 From: Stille Date: Mon, 31 May 2021 11:11:29 +0800 Subject: [PATCH] Update docker support for ARM --- .github/workflows/build.yml | 38 +++++++++++++++++++++++++++++++++++++ Dockerfile | 13 +++++++------ README.md | 4 ++++ 3 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..d4d8ba9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,38 @@ +name: "build for docker" + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set tag + id: tag + run: | + TAG=$(cat Dockerfile | awk 'NR==4 {print $3}') + echo "::set-env name=TAG::$TAG" + - name: Docker Hub login + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: | + echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin + - name: Set up Docker Buildx + id: buildx + uses: crazy-max/ghaction-docker-buildx@v1 + with: + buildx-version: latest + - name: Build Dockerfile + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + run: | + docker buildx build \ + --platform=linux/amd64,linux/arm64 \ + --output "type=image,push=true" \ + --file ./Dockerfile . \ + --tag $(echo "${DOCKER_USERNAME}" | tr '[:upper:]' '[:lower:]')/${{ github.event.repository.name }}:latest \ + --tag $(echo "${DOCKER_USERNAME}" | tr '[:upper:]' '[:lower:]')/${{ github.event.repository.name }}:${TAG} diff --git a/Dockerfile b/Dockerfile index 8f0b353..cd4977b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ FROM alpine:3.8 MAINTAINER Stille -WORKDIR / ENV FRP_VERSION 0.36.2 +WORKDIR / RUN set -xe && \ apk add tzdata && \ @@ -11,14 +11,15 @@ RUN set -xe && \ apk del tzdata RUN set -x && \ - wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz && \ - tar xzf frp_${FRP_VERSION}_linux_amd64.tar.gz && \ - cd frp_${FRP_VERSION}_linux_amd64 && \ + if [ "$(uname -m)" = "x86_64" ]; then export PLATFORM=amd64 ; else if [ "$(uname -m)" = "aarch64" ]; then export PLATFORM=arm64 ; fi fi && \ + wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_${PLATFORM}.tar.gz && \ + tar xzf frp_${FRP_VERSION}_linux_${PLATFORM}.tar.gz && \ + cd frp_${FRP_VERSION}_linux_${PLATFORM} && \ mkdir /frp && \ mv frpc frpc.ini /frp && \ cd .. && \ - rm -rf *.tar.gz frp_${FRP_VERSION}_linux_amd64 + rm -rf *.tar.gz frp_${FRP_VERSION}_linux_${PLATFORM} VOLUME /frp -CMD /frp/frpc -c /frp/frpc.ini \ No newline at end of file +CMD /frp/frpc -c /frp/frpc.ini diff --git a/README.md b/README.md index 286bd26..2164ff4 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ - GitHub [stilleshan/frpc](https://github.com/stilleshan/frpc) - Docker [stilleshan/frpc](https://hub.docker.com/r/stilleshan/frpc) +> *docker image support for X86 and ARM* + +## 更新 +**2021-05-29** 更新从`0.36.2`版本起 docker 镜像同时支持 X86 和 ARM ## 使用说明 以下分为四种部署方法,请根据实际情况自行选择: