From d9954fa25ecabb0c557ff52390faf83d38a58bfd Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 08:45:42 -0500 Subject: [PATCH 01/16] initial commit --- .github/workflows/release.yml | 42 +++++++++++ .gitignore | 4 +- .goreleaser.yml | 132 ++++++++++++++++++++++++++++++++++ Dockerfile.release | 8 +++ Makefile | 35 +++++++++ builder/files/erigon.service | 18 +++++ 6 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml create mode 100644 .goreleaser.yml create mode 100644 Dockerfile.release create mode 100644 builder/files/erigon.service diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000000..b5528d10c0a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,42 @@ +name: Release + +on: + push: + branches-ignore: + - '**' + tags: + - 'v*.*.*' + # to be used by fork patch-releases ^^ + - 'v*.*.*-*' + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@master + with: + go-version: 1.17.x + + - name: Prepare + id: prepare + run: | + TAG=${GITHUB_REF#refs/tags/} + echo ::set-output name=tag_name::${TAG} + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Run GoReleaser + run: | + make release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VERSION: ${{ steps.prepare.outputs.tag_name }} + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + DOCKER_USERNAME: ${{ secrets.DOCKERHUB }} + DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_KEY }} diff --git a/.gitignore b/.gitignore index 36bd64dfef4..369b30fec4b 100644 --- a/.gitignore +++ b/.gitignore @@ -74,4 +74,6 @@ go.work /goerli -docker-compose.*.yml \ No newline at end of file +docker-compose.*.yml + +dist diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 00000000000..1158090360d --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,132 @@ +project_name: erigon + +release: + disable: false + draft: true + prerelease: auto + +builds: + - id: darwin-amd64 + main: ./cmd/cli + binary: erigon + goos: + - darwin + goarch: + - amd64 + env: + - CC=o64-clang + - CXX=o64-clang++ + tags: + - netgo + ldflags: + -s -w + + - id: darwin-arm64 + main: ./cmd/cli + binary: erigon + goos: + - darwin + goarch: + - arm64 + env: + - CC=oa64-clang + - CXX=oa64-clang++ + tags: + - netgo + ldflags: + -s -w + + - id: linux-amd64 + main: ./cmd/cli + binary: erigon + goos: + - linux + goarch: + - amd64 + env: + - CC=gcc + - CXX=g++ + tags: + - netgo + ldflags: + # We need to build a static binary because we are building in a glibc based system and running in a musl container + -s -w -extldflags "-static" + + - id: linux-arm64 + main: ./cmd/cli + binary: erigon + goos: + - linux + goarch: + - arm64 + env: + - CC=aarch64-linux-gnu-gcc + - CXX=aarch64-linux-gnu-g++ + tags: + - netgo + ldflags: + # We need to build a static binary because we are building in a glibc based system and running in a musl container + -s -w -extldflags "-static" + +nfpms: + - vendor: 0xPolygon + homepage: https://polygon.technology + maintainer: Polygon Team + description: Polygon Blockchain + license: GPLv3 LGPLv3 + + formats: + - apk + - deb + - rpm + + contents: + - src: builder/files/erigon.service + dst: /lib/systemd/system/erigon.service + type: config + + overrides: + rpm: + replacements: + amd64: x86_64 + +snapshot: + name_template: "{{ .Tag }}.next" + +dockers: + - image_templates: + - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 + dockerfile: Dockerfile.release + use: buildx + goarch: amd64 + ids: + - linux-amd64 + build_flag_templates: + - --platform=linux/amd64 + + - image_templates: + - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 + dockerfile: Dockerfile.release + use: buildx + goarch: arm64 + ids: + - linux-arm64 + build_flag_templates: + - --platform=linux/arm64/v8 + +docker_manifests: + - name_template: 0xpolygon/{{ .ProjectName }}:{{ .Version }} + image_templates: + - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 + - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 + + - name_template: 0xpolygon/{{ .ProjectName }}:latest + image_templates: + - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 + - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 + +announce: + slack: + enabled: true + # The name of the channel that the user selected as a destination for webhook messages. + channel: '#code-releases' diff --git a/Dockerfile.release b/Dockerfile.release new file mode 100644 index 00000000000..85a1cb6651b --- /dev/null +++ b/Dockerfile.release @@ -0,0 +1,8 @@ +FROM alpine:3.14 + +RUN set -x \ + && apk add --update --no-cache \ + ca-certificates \ + && rm -rf /var/cache/apk/* + +EXPOSE 8545 8551 8546 30303 30303/udp 42069 42069/udp 8080 9090 6060 diff --git a/Makefile b/Makefile index 7a0dd3d99d5..e6c1b2fb08c 100644 --- a/Makefile +++ b/Makefile @@ -156,3 +156,38 @@ git-submodules: @# Dockerhub using ./hooks/post-checkout to set submodules, so this line will fail on Dockerhub @git submodule sync --quiet --recursive @git submodule update --quiet --init --recursive --force || true + + +PACKAGE_NAME := github.com/maticnetwork/erigon +GOLANG_CROSS_VERSION ?= v1.18.1 + +.PHONY: release-dry-run +release-dry-run: + @docker run \ + --rm \ + --privileged \ + -e CGO_ENABLED=1 \ + -e GITHUB_TOKEN \ + -e DOCKER_USERNAME \ + -e DOCKER_PASSWORD \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v `pwd`:/go/src/$(PACKAGE_NAME) \ + -w /go/src/$(PACKAGE_NAME) \ + goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \ + --rm-dist --skip-validate --skip-publish + +.PHONY: release +release: + @docker run \ + --rm \ + --privileged \ + -e CGO_ENABLED=1 \ + -e GITHUB_TOKEN \ + -e DOCKER_USERNAME \ + -e DOCKER_PASSWORD \ + -e SLACK_WEBHOOK \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v `pwd`:/go/src/$(PACKAGE_NAME) \ + -w /go/src/$(PACKAGE_NAME) \ + goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \ + --rm-dist --skip-validate diff --git a/builder/files/erigon.service b/builder/files/erigon.service new file mode 100644 index 00000000000..601ab08328c --- /dev/null +++ b/builder/files/erigon.service @@ -0,0 +1,18 @@ +[Unit] + Description=erigon + StartLimitIntervalSec=500 + StartLimitBurst=5 + +[Service] + Restart=on-failure + RestartSec=5s + WorkingDirectory=$NODE_DIR + EnvironmentFile=/etc/matic/metadata + ExecStart=/usr/local/bin/erigon $VALIDATOR_ADDRESS + Type=simple + User=$USER + KillSignal=SIGINT + TimeoutStopSec=120 + +[Install] + WantedBy=multi-user.target From cadef43587ef7764724f9fd3ac58efb9a7140513 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 08:54:53 -0500 Subject: [PATCH 02/16] cleanup sevice names --- .goreleaser.yml | 8 ++++---- Dockerfile.release | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 1158090360d..df69131baf7 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -7,7 +7,7 @@ release: builds: - id: darwin-amd64 - main: ./cmd/cli + main: ./cmd/erigon binary: erigon goos: - darwin @@ -22,7 +22,7 @@ builds: -s -w - id: darwin-arm64 - main: ./cmd/cli + main: ./cmd/erigon binary: erigon goos: - darwin @@ -37,7 +37,7 @@ builds: -s -w - id: linux-amd64 - main: ./cmd/cli + main: ./cmd/erigon binary: erigon goos: - linux @@ -53,7 +53,7 @@ builds: -s -w -extldflags "-static" - id: linux-arm64 - main: ./cmd/cli + main: ./cmd/erigon binary: erigon goos: - linux diff --git a/Dockerfile.release b/Dockerfile.release index 85a1cb6651b..14122c91ec0 100644 --- a/Dockerfile.release +++ b/Dockerfile.release @@ -4,5 +4,7 @@ RUN set -x \ && apk add --update --no-cache \ ca-certificates \ && rm -rf /var/cache/apk/* +COPY erigon /usr/local/bin/ EXPOSE 8545 8551 8546 30303 30303/udp 42069 42069/udp 8080 9090 6060 +ENTRYPOINT ["erigon"] From 18c4fc1cab6ff5c520f08e90a643cf3be8c2bcf0 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 09:51:25 -0500 Subject: [PATCH 03/16] no slack webhook --- .github/workflows/release.yml | 5 ++--- .goreleaser.yml | 4 ++-- Makefile | 1 - 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b5528d10c0a..c6d482119aa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Go uses: actions/setup-go@master with: - go-version: 1.17.x + go-version: 1.18.x - name: Prepare id: prepare @@ -33,10 +33,9 @@ jobs: - name: Run GoReleaser run: | - make release + make release-dry-run env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} DOCKER_USERNAME: ${{ secrets.DOCKERHUB }} DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_KEY }} diff --git a/.goreleaser.yml b/.goreleaser.yml index df69131baf7..102daff45d0 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -96,7 +96,7 @@ snapshot: dockers: - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 - dockerfile: Dockerfile.release + dockerfile: Dockerfile use: buildx goarch: amd64 ids: @@ -106,7 +106,7 @@ dockers: - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 - dockerfile: Dockerfile.release + dockerfile: Dockerfile use: buildx goarch: arm64 ids: diff --git a/Makefile b/Makefile index e6c1b2fb08c..7e5623c53ec 100644 --- a/Makefile +++ b/Makefile @@ -185,7 +185,6 @@ release: -e GITHUB_TOKEN \ -e DOCKER_USERNAME \ -e DOCKER_PASSWORD \ - -e SLACK_WEBHOOK \ -v /var/run/docker.sock:/var/run/docker.sock \ -v `pwd`:/go/src/$(PACKAGE_NAME) \ -w /go/src/$(PACKAGE_NAME) \ From 611f661d46c2c642aee4cb734afde47e2cba3b55 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 10:00:20 -0500 Subject: [PATCH 04/16] adjust env var names --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c6d482119aa..ef910048c04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: run: | make release-dry-run env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} DOCKER_USERNAME: ${{ secrets.DOCKERHUB }} DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_KEY }} From ab227542421c595624a90a5c18238c8f1d0d1b99 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 10:35:23 -0500 Subject: [PATCH 05/16] git submodules --- Makefile | 4 ++-- builder/files/erigon.service | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 7e5623c53ec..b5a8f280910 100644 --- a/Makefile +++ b/Makefile @@ -162,7 +162,7 @@ PACKAGE_NAME := github.com/maticnetwork/erigon GOLANG_CROSS_VERSION ?= v1.18.1 .PHONY: release-dry-run -release-dry-run: +release-dry-run: git-submodules @docker run \ --rm \ --privileged \ @@ -177,7 +177,7 @@ release-dry-run: --rm-dist --skip-validate --skip-publish .PHONY: release -release: +release: git-submodules @docker run \ --rm \ --privileged \ diff --git a/builder/files/erigon.service b/builder/files/erigon.service index 601ab08328c..0f9752d1f5c 100644 --- a/builder/files/erigon.service +++ b/builder/files/erigon.service @@ -7,8 +7,6 @@ Restart=on-failure RestartSec=5s WorkingDirectory=$NODE_DIR - EnvironmentFile=/etc/matic/metadata - ExecStart=/usr/local/bin/erigon $VALIDATOR_ADDRESS Type=simple User=$USER KillSignal=SIGINT From 8f43d1f0b4527429589670021e95b79b8da13aaa Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 11:09:31 -0500 Subject: [PATCH 06/16] adjust dockerfile copy --- .goreleaser.yml | 4 ++-- Dockerfile.release | 46 +++++++++++++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 102daff45d0..df69131baf7 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -96,7 +96,7 @@ snapshot: dockers: - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 - dockerfile: Dockerfile + dockerfile: Dockerfile.release use: buildx goarch: amd64 ids: @@ -106,7 +106,7 @@ dockers: - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 - dockerfile: Dockerfile + dockerfile: Dockerfile.release use: buildx goarch: arm64 ids: diff --git a/Dockerfile.release b/Dockerfile.release index 14122c91ec0..2cee78e9fdc 100644 --- a/Dockerfile.release +++ b/Dockerfile.release @@ -1,10 +1,42 @@ -FROM alpine:3.14 +# syntax = docker/dockerfile:1.2 +FROM docker.io/library/golang:1.18-alpine3.15 AS builder -RUN set -x \ - && apk add --update --no-cache \ - ca-certificates \ - && rm -rf /var/cache/apk/* -COPY erigon /usr/local/bin/ +RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc++ + +WORKDIR /app +COPY . . + +RUN --mount=type=cache,target=/root/.cache \ + --mount=type=cache,target=/tmp/go-build \ + --mount=type=cache,target=/go/pkg/mod \ + make all db-tools + +FROM docker.io/library/alpine:3.15 + +RUN apk add --no-cache ca-certificates libstdc++ tzdata +COPY --from=builder /app/build/bin/* /usr/local/bin/ + +ARG PUID=1000 +ARG PGID=1000 +RUN adduser -H -u ${PUID} -g ${PGID} -D erigon +RUN mkdir -p /home/erigon +RUN mkdir -p /home/erigon/.local/share/erigon +RUN chown -R erigon:erigon /home/erigon + +USER erigon EXPOSE 8545 8551 8546 30303 30303/udp 42069 42069/udp 8080 9090 6060 -ENTRYPOINT ["erigon"] + +# https://github.com/opencontainers/image-spec/blob/main/annotations.md +ARG BUILD_DATE +ARG VCS_REF +ARG VERSION +LABEL org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name="Erigon" \ + org.label-schema.description="Erigon Ethereum Client" \ + org.label-schema.url="https://torquem.ch" \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vcs-url="https://github.com/ledgerwatch/erigon.git" \ + org.label-schema.vendor="Torquem" \ + org.label-schema.version=$VERSION \ + org.label-schema.schema-version="1.0" From da3329a7578505d5f0384da50d9ddcb46c3bfc41 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 11:26:38 -0500 Subject: [PATCH 07/16] makefile force --- Dockerfile.release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.release b/Dockerfile.release index 2cee78e9fdc..7d61cefe058 100644 --- a/Dockerfile.release +++ b/Dockerfile.release @@ -9,7 +9,7 @@ COPY . . RUN --mount=type=cache,target=/root/.cache \ --mount=type=cache,target=/tmp/go-build \ --mount=type=cache,target=/go/pkg/mod \ - make all db-tools + make -f /app/Makefile all db-tools FROM docker.io/library/alpine:3.15 From 0295d4356f250c90c5d0e4e74c10a364d700512f Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 12:10:53 -0500 Subject: [PATCH 08/16] adjust makefile --- Dockerfile.release | 2 ++ Makefile | 3 +++ 2 files changed, 5 insertions(+) diff --git a/Dockerfile.release b/Dockerfile.release index 7d61cefe058..f0b3064da84 100644 --- a/Dockerfile.release +++ b/Dockerfile.release @@ -6,6 +6,8 @@ RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc WORKDIR /app COPY . . +RUN ls /app + RUN --mount=type=cache,target=/root/.cache \ --mount=type=cache,target=/tmp/go-build \ --mount=type=cache,target=/go/pkg/mod \ diff --git a/Makefile b/Makefile index b5a8f280910..7953eb90dd0 100644 --- a/Makefile +++ b/Makefile @@ -62,6 +62,7 @@ dbg: geth: erigon +.PHONY: erigon erigon: go-version erigon.cmd @rm -f $(GOBIN)/tg # Remove old binary to prevent confusion where users still use it because of the scripts @@ -82,8 +83,10 @@ COMMANDS += txpool # build each command using %.cmd rule $(COMMANDS): %: %.cmd +.PHONY: all all: erigon $(COMMANDS) +.PHONY: db-tools db-tools: git-submodules @echo "Building db-tools" From e5b5062f53da8c3b87969a117d9bc1a07053510c Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 13:09:17 -0500 Subject: [PATCH 09/16] add make as extra_file --- .goreleaser.yml | 4 +++- Makefile | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index df69131baf7..983c04502a9 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -113,6 +113,8 @@ dockers: - linux-arm64 build_flag_templates: - --platform=linux/arm64/v8 + extra_files: + - Makefile docker_manifests: - name_template: 0xpolygon/{{ .ProjectName }}:{{ .Version }} @@ -127,6 +129,6 @@ docker_manifests: announce: slack: - enabled: true + enabled: false # The name of the channel that the user selected as a destination for webhook messages. channel: '#code-releases' diff --git a/Makefile b/Makefile index 7953eb90dd0..b5a8f280910 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,6 @@ dbg: geth: erigon -.PHONY: erigon erigon: go-version erigon.cmd @rm -f $(GOBIN)/tg # Remove old binary to prevent confusion where users still use it because of the scripts @@ -83,10 +82,8 @@ COMMANDS += txpool # build each command using %.cmd rule $(COMMANDS): %: %.cmd -.PHONY: all all: erigon $(COMMANDS) -.PHONY: db-tools db-tools: git-submodules @echo "Building db-tools" From afc25cbcd454814677bc31a921bd14a2a0dcad69 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 13:31:46 -0500 Subject: [PATCH 10/16] tweak goreleaser config --- .goreleaser.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 983c04502a9..f7ed65ead32 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -96,17 +96,19 @@ snapshot: dockers: - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 - dockerfile: Dockerfile.release + dockerfile: Dockerfile use: buildx goarch: amd64 ids: - linux-amd64 build_flag_templates: - --platform=linux/amd64 + extra_files: + - Makefile - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 - dockerfile: Dockerfile.release + dockerfile: Dockerfile use: buildx goarch: arm64 ids: @@ -114,7 +116,7 @@ dockers: build_flag_templates: - --platform=linux/arm64/v8 extra_files: - - Makefile + - Makefile docker_manifests: - name_template: 0xpolygon/{{ .ProjectName }}:{{ .Version }} From 091ae6195ba45e63ed962828c8a95131e42bcfd0 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 13:50:53 -0500 Subject: [PATCH 11/16] simplify dockerfile.release --- .goreleaser.yml | 8 ++------ Dockerfile.release | 46 +++++----------------------------------------- 2 files changed, 7 insertions(+), 47 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index f7ed65ead32..b040d42a538 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -96,27 +96,23 @@ snapshot: dockers: - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-amd64 - dockerfile: Dockerfile + dockerfile: Dockerfile.release use: buildx goarch: amd64 ids: - linux-amd64 build_flag_templates: - --platform=linux/amd64 - extra_files: - - Makefile - image_templates: - 0xpolygon/{{ .ProjectName }}:{{ .Version }}-arm64 - dockerfile: Dockerfile + dockerfile: Dockerfile.release use: buildx goarch: arm64 ids: - linux-arm64 build_flag_templates: - --platform=linux/arm64/v8 - extra_files: - - Makefile docker_manifests: - name_template: 0xpolygon/{{ .ProjectName }}:{{ .Version }} diff --git a/Dockerfile.release b/Dockerfile.release index f0b3064da84..115ac10910b 100644 --- a/Dockerfile.release +++ b/Dockerfile.release @@ -1,44 +1,8 @@ -# syntax = docker/dockerfile:1.2 -FROM docker.io/library/golang:1.18-alpine3.15 AS builder +FROM alpine:3.14 -RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc++ - -WORKDIR /app -COPY . . - -RUN ls /app - -RUN --mount=type=cache,target=/root/.cache \ - --mount=type=cache,target=/tmp/go-build \ - --mount=type=cache,target=/go/pkg/mod \ - make -f /app/Makefile all db-tools - -FROM docker.io/library/alpine:3.15 - -RUN apk add --no-cache ca-certificates libstdc++ tzdata -COPY --from=builder /app/build/bin/* /usr/local/bin/ - -ARG PUID=1000 -ARG PGID=1000 -RUN adduser -H -u ${PUID} -g ${PGID} -D erigon -RUN mkdir -p /home/erigon -RUN mkdir -p /home/erigon/.local/share/erigon -RUN chown -R erigon:erigon /home/erigon - -USER erigon +RUN apk add --no-cache ca-certificates && \ + mkdir -p /etc/erigon +COPY erigon /usr/local/bin/ EXPOSE 8545 8551 8546 30303 30303/udp 42069 42069/udp 8080 9090 6060 - -# https://github.com/opencontainers/image-spec/blob/main/annotations.md -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name="Erigon" \ - org.label-schema.description="Erigon Ethereum Client" \ - org.label-schema.url="https://torquem.ch" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/ledgerwatch/erigon.git" \ - org.label-schema.vendor="Torquem" \ - org.label-schema.version=$VERSION \ - org.label-schema.schema-version="1.0" +ENTRYPOINT ["erigon"] From 4cd0c87952a5248f5235029e339d8714288b1fd2 Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 15:19:16 -0500 Subject: [PATCH 12/16] change from dryrun --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ef910048c04..29531622448 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - name: Run GoReleaser run: | - make release-dry-run + make release env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} From 2c071d4740a26d8c8a0acc1d919005ec51a97a6a Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 17:14:32 -0500 Subject: [PATCH 13/16] adjust execstart --- .github/workflows/release.yml | 2 +- builder/files/erigon.service | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 29531622448..ef910048c04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - name: Run GoReleaser run: | - make release + make release-dry-run env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} diff --git a/builder/files/erigon.service b/builder/files/erigon.service index 0f9752d1f5c..cacbd1ef030 100644 --- a/builder/files/erigon.service +++ b/builder/files/erigon.service @@ -6,6 +6,24 @@ [Service] Restart=on-failure RestartSec=5s + ExecStart=/usr/local/bin/erigon \ + --chain=mumbai \ + # --chain=mainnet \ + --datadir /var/lib/erigon/data \ + --metrics \ + --metrics.prometheus-addr="127.0.0.1:9090" \ + --syncmode 'full' \ + --miner.gasprice '30000000000' \ + --miner.gaslimit '20000000' \ + --miner.gastarget '20000000' \ + --txpool.nolocals \ + --txpool.accountslots 16 \ + --txpool.globalslots 32768 \ + --txpool.accountqueue 16 \ + --txpool.globalqueue 32768 \ + --txpool.pricelimit '30000000000' \ + --txpool.lifetime '1h30m0s' \ + --bootnodes "enode://0cb82b395094ee4a2915e9714894627de9ed8498fb881cec6db7c65e8b9a5bd7f2f25cc84e71e89d0947e51c76e85d0847de848c7782b13c0255247a6758178c@44.232.55.71:30303,enode://88116f4295f5a31538ae409e4d44ad40d22e44ee9342869e7d68bdec55b0f83c1530355ce8b41fbec0928a7d75a5745d528450d30aec92066ab6ba1ee351d710@159.203.9.164:30303" WorkingDirectory=$NODE_DIR Type=simple User=$USER From dce747ec949087227b037f3f9e33157dbd556a2e Mon Sep 17 00:00:00 2001 From: dan moore Date: Tue, 5 Jul 2022 17:44:13 -0500 Subject: [PATCH 14/16] no dry run --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ef910048c04..29531622448 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - name: Run GoReleaser run: | - make release-dry-run + make release env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} From e73d47d86a182332493f63e68abf883fc23d40f1 Mon Sep 17 00:00:00 2001 From: dan moore Date: Wed, 6 Jul 2022 09:48:00 -0500 Subject: [PATCH 15/16] have nfpms be followup --- .github/workflows/release.yml | 2 +- .goreleaser.yml | 22 ---------------------- builder/files/erigon.service | 34 ---------------------------------- 3 files changed, 1 insertion(+), 57 deletions(-) delete mode 100644 builder/files/erigon.service diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 29531622448..ef910048c04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - name: Run GoReleaser run: | - make release + make release-dry-run env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }} diff --git a/.goreleaser.yml b/.goreleaser.yml index b040d42a538..72aa9a75a9f 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -68,28 +68,6 @@ builds: # We need to build a static binary because we are building in a glibc based system and running in a musl container -s -w -extldflags "-static" -nfpms: - - vendor: 0xPolygon - homepage: https://polygon.technology - maintainer: Polygon Team - description: Polygon Blockchain - license: GPLv3 LGPLv3 - - formats: - - apk - - deb - - rpm - - contents: - - src: builder/files/erigon.service - dst: /lib/systemd/system/erigon.service - type: config - - overrides: - rpm: - replacements: - amd64: x86_64 - snapshot: name_template: "{{ .Tag }}.next" diff --git a/builder/files/erigon.service b/builder/files/erigon.service deleted file mode 100644 index cacbd1ef030..00000000000 --- a/builder/files/erigon.service +++ /dev/null @@ -1,34 +0,0 @@ -[Unit] - Description=erigon - StartLimitIntervalSec=500 - StartLimitBurst=5 - -[Service] - Restart=on-failure - RestartSec=5s - ExecStart=/usr/local/bin/erigon \ - --chain=mumbai \ - # --chain=mainnet \ - --datadir /var/lib/erigon/data \ - --metrics \ - --metrics.prometheus-addr="127.0.0.1:9090" \ - --syncmode 'full' \ - --miner.gasprice '30000000000' \ - --miner.gaslimit '20000000' \ - --miner.gastarget '20000000' \ - --txpool.nolocals \ - --txpool.accountslots 16 \ - --txpool.globalslots 32768 \ - --txpool.accountqueue 16 \ - --txpool.globalqueue 32768 \ - --txpool.pricelimit '30000000000' \ - --txpool.lifetime '1h30m0s' \ - --bootnodes "enode://0cb82b395094ee4a2915e9714894627de9ed8498fb881cec6db7c65e8b9a5bd7f2f25cc84e71e89d0947e51c76e85d0847de848c7782b13c0255247a6758178c@44.232.55.71:30303,enode://88116f4295f5a31538ae409e4d44ad40d22e44ee9342869e7d68bdec55b0f83c1530355ce8b41fbec0928a7d75a5745d528450d30aec92066ab6ba1ee351d710@159.203.9.164:30303" - WorkingDirectory=$NODE_DIR - Type=simple - User=$USER - KillSignal=SIGINT - TimeoutStopSec=120 - -[Install] - WantedBy=multi-user.target From 136d2190053f3433a51cd45c5cebd19693649836 Mon Sep 17 00:00:00 2001 From: dan moore Date: Wed, 6 Jul 2022 10:02:39 -0500 Subject: [PATCH 16/16] remove dry run --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ef910048c04..29531622448 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - name: Run GoReleaser run: | - make release-dry-run + make release env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} VERSION: ${{ steps.prepare.outputs.tag_name }}