diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0a1dab464..6cdb9132b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -14,9 +14,12 @@ jobs: build: runs-on: ubuntu-latest steps: +<<<<<<< HEAD - uses: actions/setup-go@v2 with: go-version: "^1.15.4" +======= +>>>>>>> cd3ebe875... docker: release Linux/ARM64 image (#5925) - uses: actions/checkout@master - name: Prepare id: prep @@ -37,6 +40,11 @@ jobs: fi echo ::set-output name=tags::${TAGS} + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 @@ -46,14 +54,11 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build Tendermint - run: | - make build-linux && cp build/tendermint DOCKER/tendermint - - name: Publish to Docker Hub uses: docker/build-push-action@v2 with: - context: ./DOCKER + context: . file: ./DOCKER/Dockerfile + platforms: linux/amd64,linux/arm64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.prep.outputs.tags }} diff --git a/DOCKER/Dockerfile b/DOCKER/Dockerfile index 67aa3663f..1d8878bff 100644 --- a/DOCKER/Dockerfile +++ b/DOCKER/Dockerfile @@ -1,4 +1,14 @@ -FROM alpine:3.9 +# stage 1 Generate Tendermint Binary +FROM golang:1.15-alpine as builder +RUN apk update && \ + apk upgrade && \ + apk --no-cache add make +COPY / /tendermint +WORKDIR /tendermint +RUN make build-linux + +# stage 2 +FROM golang:1.15-alpine LABEL maintainer="hello@tendermint.com" # Tendermint will be looking for the genesis file in /tendermint/config/genesis.json @@ -29,15 +39,14 @@ EXPOSE 26656 26657 26660 STOPSIGNAL SIGTERM -ARG BINARY=tendermint -COPY $BINARY /usr/bin/tendermint +COPY --from=builder /tendermint/build/tendermint /usr/bin/tendermint # You can overwrite these before the first run to influence # config.json and genesis.json. Additionally, you can override # CMD to add parameters to `tendermint node`. ENV PROXY_APP=kvstore MONIKER=dockernode CHAIN_ID=dockerchain -COPY ./docker-entrypoint.sh /usr/local/bin/ +COPY ./DOCKER/docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] CMD ["node"]