From b6278b1a03c88968ab599d9daf9783f29c249451 Mon Sep 17 00:00:00 2001 From: Viktor Baranov Date: Thu, 19 Oct 2023 12:56:39 +0300 Subject: [PATCH] arm64-compatible docker image --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/config.yml | 26 +++++++++---------- .../publish-docker-image-every-push.yml | 15 +++++------ .../publish-docker-image-for-core.yml | 8 +++--- .../publish-docker-image-for-eth-goerli.yml | 8 +++--- .../publish-docker-image-for-eth.yml | 8 +++--- .../publish-docker-image-for-fuse.yml | 13 ++++------ .../publish-docker-image-for-immutable.yml | 11 +++----- .../publish-docker-image-for-l2-staging.yml | 6 ++--- .../publish-docker-image-for-lukso.yml | 6 ++--- .../publish-docker-image-for-optimism.yml | 9 ++++--- .../publish-docker-image-for-rsk.yml | 4 +-- .../publish-docker-image-for-xdai.yml | 11 +++----- .../publish-docker-image-for-zksync.yml | 6 ++--- .../publish-docker-image-release.yml | 15 +++++------ CHANGELOG.md | 1 + docker/Dockerfile | 17 ++++++++---- 17 files changed, 81 insertions(+), 85 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 9b8a5cf42a..8a4cf36f5b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 83ce784bdb..4fd201d657 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -35,7 +35,7 @@ jobs: name: Build and Cache deps runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -99,7 +99,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -123,7 +123,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -146,7 +146,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -186,7 +186,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -212,7 +212,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -241,7 +241,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -289,7 +289,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -335,7 +335,7 @@ jobs: runs-on: ubuntu-latest needs: build-and-cache steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -392,7 +392,7 @@ jobs: # Maps tcp port 5432 on service container to the host - 5432:5432 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -446,7 +446,7 @@ jobs: # Maps tcp port 5432 on service container to the host - 5432:5432 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -511,7 +511,7 @@ jobs: # Maps tcp port 5432 on service container to the host - 5432:5432 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} @@ -575,7 +575,7 @@ jobs: # Maps tcp port 5432 on service container to the host - 5432:5432 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: erlef/setup-beam@v1 with: otp-version: ${{ env.OTP_VERSION }} diff --git a/.github/workflows/publish-docker-image-every-push.yml b/.github/workflows/publish-docker-image-every-push.yml index 4923e93a0c..97fd753c1b 100644 --- a/.github/workflows/publish-docker-image-every-push.yml +++ b/.github/workflows/publish-docker-image-every-push.yml @@ -18,23 +18,20 @@ jobs: short-sha: ${{ steps.output-step.outputs.short-sha }} steps: - name: Check out the repo - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -48,7 +45,7 @@ jobs: id: output-step - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile @@ -73,7 +70,7 @@ jobs: RELEASE_VERSION=${{ env.RELEASE_VERSION }} - name: Build and push Docker image for frontend - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-core.yml b/.github/workflows/publish-docker-image-for-core.yml index 52f5e46457..f0d836f941 100644 --- a/.github/workflows/publish-docker-image-for-core.yml +++ b/.github/workflows/publish-docker-image-for-core.yml @@ -18,17 +18,17 @@ jobs: DOCKER_CHAIN_NAME: poa steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,7 +36,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-eth-goerli.yml b/.github/workflows/publish-docker-image-for-eth-goerli.yml index bb79109025..bd25b221e5 100644 --- a/.github/workflows/publish-docker-image-for-eth-goerli.yml +++ b/.github/workflows/publish-docker-image-for-eth-goerli.yml @@ -18,17 +18,17 @@ jobs: DOCKER_CHAIN_NAME: eth-goerli steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,7 +36,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-eth.yml b/.github/workflows/publish-docker-image-for-eth.yml index 9095a49265..7ab5a54f4a 100644 --- a/.github/workflows/publish-docker-image-for-eth.yml +++ b/.github/workflows/publish-docker-image-for-eth.yml @@ -18,17 +18,17 @@ jobs: DOCKER_CHAIN_NAME: mainnet steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,7 +36,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-fuse.yml b/.github/workflows/publish-docker-image-for-fuse.yml index f54355fa4c..d3548c3866 100644 --- a/.github/workflows/publish-docker-image-for-fuse.yml +++ b/.github/workflows/publish-docker-image-for-fuse.yml @@ -18,23 +18,20 @@ jobs: DOCKER_CHAIN_NAME: fuse steps: - name: Check out the repo - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -42,7 +39,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-immutable.yml b/.github/workflows/publish-docker-image-for-immutable.yml index 3b91f64ca5..1a266332ee 100644 --- a/.github/workflows/publish-docker-image-for-immutable.yml +++ b/.github/workflows/publish-docker-image-for-immutable.yml @@ -18,13 +18,10 @@ jobs: DOCKER_CHAIN_NAME: immutable steps: - name: Check out the repo - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -34,7 +31,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -42,7 +39,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-l2-staging.yml b/.github/workflows/publish-docker-image-for-l2-staging.yml index f05ff42df5..305fc1d100 100644 --- a/.github/workflows/publish-docker-image-for-l2-staging.yml +++ b/.github/workflows/publish-docker-image-for-l2-staging.yml @@ -18,7 +18,7 @@ jobs: DOCKER_CHAIN_NAME: optimism-l2-advanced steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -28,7 +28,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,7 +36,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-lukso.yml b/.github/workflows/publish-docker-image-for-lukso.yml index 0775d2b59b..75a25b54df 100644 --- a/.github/workflows/publish-docker-image-for-lukso.yml +++ b/.github/workflows/publish-docker-image-for-lukso.yml @@ -18,7 +18,7 @@ jobs: DOCKER_CHAIN_NAME: lukso steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -28,7 +28,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,7 +36,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-optimism.yml b/.github/workflows/publish-docker-image-for-optimism.yml index 3601cff8ae..a005e6bba2 100644 --- a/.github/workflows/publish-docker-image-for-optimism.yml +++ b/.github/workflows/publish-docker-image-for-optimism.yml @@ -18,7 +18,7 @@ jobs: DOCKER_CHAIN_NAME: optimism steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -28,7 +28,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,12 +36,15 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile push: true tags: blockscout/blockscout-${{ env.DOCKER_CHAIN_NAME }}:latest, blockscout/blockscout-${{ env.DOCKER_CHAIN_NAME }}:${{ env.RELEASE_VERSION }}-postrelease-${{ env.SHORT_SHA }} + platforms: | + linux/amd64 + linux/arm64/v8 build-args: | CACHE_EXCHANGE_RATES_PERIOD= API_V1_READ_METHODS_DISABLED=false diff --git a/.github/workflows/publish-docker-image-for-rsk.yml b/.github/workflows/publish-docker-image-for-rsk.yml index 979e240761..45ee472264 100644 --- a/.github/workflows/publish-docker-image-for-rsk.yml +++ b/.github/workflows/publish-docker-image-for-rsk.yml @@ -18,7 +18,7 @@ jobs: DOCKER_CHAIN_NAME: rsk steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -28,7 +28,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout diff --git a/.github/workflows/publish-docker-image-for-xdai.yml b/.github/workflows/publish-docker-image-for-xdai.yml index 2cd054c3b7..2c6d7836af 100644 --- a/.github/workflows/publish-docker-image-for-xdai.yml +++ b/.github/workflows/publish-docker-image-for-xdai.yml @@ -18,13 +18,10 @@ jobs: DOCKER_CHAIN_NAME: xdai steps: - name: Check out the repo - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -34,7 +31,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -42,7 +39,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-for-zksync.yml b/.github/workflows/publish-docker-image-for-zksync.yml index dbd13e3b32..1c0e5a5bea 100644 --- a/.github/workflows/publish-docker-image-for-zksync.yml +++ b/.github/workflows/publish-docker-image-for-zksync.yml @@ -18,7 +18,7 @@ jobs: DOCKER_CHAIN_NAME: zksync steps: - name: Check out the repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -28,7 +28,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout @@ -36,7 +36,7 @@ jobs: run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - name: Build and push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile diff --git a/.github/workflows/publish-docker-image-release.yml b/.github/workflows/publish-docker-image-release.yml index 124af71187..5bb00c9926 100644 --- a/.github/workflows/publish-docker-image-release.yml +++ b/.github/workflows/publish-docker-image-release.yml @@ -21,13 +21,10 @@ jobs: RELEASE_VERSION: 5.2.3 steps: - name: Check out the repo - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -37,12 +34,12 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: blockscout/blockscout - name: Build & Push Docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile @@ -51,8 +48,8 @@ jobs: cache-to: type=registry,ref=blockscout/blockscout:buildcache,mode=max tags: blockscout/blockscout:latest, blockscout/blockscout:${{ env.RELEASE_VERSION }} platforms: | - linux/arm64 linux/amd64 + linux/arm64/v8 build-args: | CACHE_EXCHANGE_RATES_PERIOD= API_V1_READ_METHODS_DISABLED=false @@ -96,7 +93,7 @@ jobs: # production-rsk-stg # production-immutable-stg # steps: - # - uses: actions/checkout@v2 + # - uses: actions/checkout@v4 # - name: Set Git config # run: | # git config --local user.email "actions@github.com" diff --git a/CHANGELOG.md b/CHANGELOG.md index 6854061e89..58f26fe682 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ### Fixes +- [#8661](https://github.com/blockscout/blockscout/pull/8661) - arm64-compatible docker image - [#8649](https://github.com/blockscout/blockscout/pull/8649) - Set max 30sec JSON RPC poll frequency for realtime fetcher when WS is disabled - [#8614](https://github.com/blockscout/blockscout/pull/8614) - Disable market history cataloger fetcher when exchange rates are disabled - [#8572](https://github.com/blockscout/blockscout/pull/8572) - Refactor docker-compose config diff --git a/docker/Dockerfile b/docker/Dockerfile index ba1ccd8f85..bc8bb581b4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,10 +1,13 @@ -FROM bitwalker/alpine-elixir-phoenix:1.14 AS builder +FROM hexpm/elixir:1.14.5-erlang-24.2.2-alpine-3.18.2 AS builder WORKDIR /app ENV MIX_ENV="prod" -RUN apk --no-cache --update add alpine-sdk gmp-dev automake libtool inotify-tools autoconf python3 file libstdc++ curl ca-certificates +RUN apk --no-cache --update add alpine-sdk gmp-dev automake libtool inotify-tools autoconf python3 file gcompat + +RUN set -ex && \ + apk --update add libstdc++ curl ca-certificates gcompat ARG CACHE_EXCHANGE_RATES_PERIOD ARG API_V1_READ_METHODS_DISABLED @@ -47,9 +50,13 @@ RUN cd apps/block_scout_web/assets/ && \ npm install && \ npm run deploy && \ cd /app/apps/explorer/ && \ - npm install + npm install && \ + apk update && \ + apk del --force-broken-world alpine-sdk gmp-dev automake libtool inotify-tools autoconf python3 + + +RUN apk add --update git make -RUN export "CFLAGS=-I/usr/local/include -L/usr/local/lib" && cd deps/ex_secp256k1 && mix deps.get && mix compile RUN mix phx.digest RUN mkdir -p /opt/release \ @@ -57,7 +64,7 @@ RUN mkdir -p /opt/release \ && mv _build/${MIX_ENV}/rel/blockscout /opt/release ############################################################## -FROM bitwalker/alpine-elixir-phoenix:1.14 +FROM hexpm/elixir:1.14.5-erlang-24.2.2-alpine-3.18.2 ARG RELEASE_VERSION ENV RELEASE_VERSION=${RELEASE_VERSION}