diff --git a/Dockerfile b/Dockerfile index f0df3c5bdf2..3ba548e1226 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:5.0 AS build +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk@sha256:fa19559201c43bc8191c1a095670e242de80a23697d24f5a3460019958637c63 AS build ARG TARGETPLATFORM ARG TARGETOS @@ -14,7 +14,7 @@ RUN if [ "$TARGETARCH" = "amd64" ] ; \ dotnet publish src/Nethermind/Nethermind.Runner -r $TARGETOS-$TARGETARCH -c release -o out ; \ fi -FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/aspnet:5.0 +FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/aspnet@sha256:1d75db770c7ce82b128744770271bd87dc9d119f0ef15b94cab0f84477abfaec RUN apt-get update && apt-get -y install libsnappy-dev libc6-dev libc6 WORKDIR /nethermind diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 2fadcd533ae..96c0e31bb12 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -1,9 +1,10 @@ -FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build + +FROM mcr.microsoft.com/dotnet/sdk@sha256:e8dce81012457ec0d87929aff8d60277c01b88fdd80bd128f1d4fc1c1bbdeb74 AS build COPY . . RUN git submodule update --init src/Dirichlet src/int256 src/rocksdb-sharp src/Math.Gmp.Native RUN dotnet publish src/Nethermind/Nethermind.DataMarketplace.Consumers.Test.EndToEnd -c release -o out -FROM mcr.microsoft.com/dotnet/aspnet:5.0 +FROM mcr.microsoft.com/dotnet/aspnet@sha256:df9df076ae5c0a6b88ff5a5faa4bba123b6e64fecfd5ecd19005b527309a5785 RUN apt-get update && apt-get -y install libsnappy-dev libc6-dev libc6 unzip WORKDIR /e2e COPY --from=build /out . diff --git a/Dockerfile.gmp b/Dockerfile.gmp index 5188ad48a8c..1accb9339e1 100644 --- a/Dockerfile.gmp +++ b/Dockerfile.gmp @@ -1,4 +1,4 @@ -FROM debian:10 AS gmp +FROM debian@sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 AS gmp WORKDIR /source RUN apt-get update && apt-get install -y mercurial autoconf automake libtool texinfo build-essential bison @@ -12,6 +12,6 @@ RUN hg clone https://gmplib.org/repo/gmp-6.2/ gmp && \ RUN strip gmp/.libs/libgmp.so -FROM debian:10 AS libgmp +FROM debian@sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 AS libgmp WORKDIR /nethermind -COPY --from=gmp /source/gmp/.libs/libgmp.so . \ No newline at end of file +COPY --from=gmp /source/gmp/.libs/libgmp.so . diff --git a/Dockerfile.rocksdb b/Dockerfile.rocksdb index 8fbbfa0dc07..25af089a9e6 100644 --- a/Dockerfile.rocksdb +++ b/Dockerfile.rocksdb @@ -1,4 +1,4 @@ -FROM debian:10 AS rocksdb +FROM debian@sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 AS rocksdb WORKDIR /source ARG TARGETPLATFORM @@ -10,6 +10,6 @@ RUN PORTABLE=1 make -j16 shared_lib RUN strip librocksdb.so -FROM debian:10 AS librocksdb +FROM debian@sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 AS librocksdb WORKDIR /nethermind COPY --from=rocksdb /source/librocksdb.so . diff --git a/Dockerfile.secp256k1 b/Dockerfile.secp256k1 index 5ae647c5423..4be3ffcb163 100644 --- a/Dockerfile.secp256k1 +++ b/Dockerfile.secp256k1 @@ -1,4 +1,4 @@ -FROM debian:10 AS secp256k1 +FROM debian@sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 AS secp256k1 WORKDIR /source RUN apt-get update && apt-get install -y git autoconf automake libtool build-essential @@ -11,6 +11,6 @@ RUN git clone https://github.com/NethermindEth/secp256k1 . && \ RUN strip .libs/libsecp256k1.so -FROM debian:10 AS libsecp256k1 +FROM debian@sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 AS libsecp256k1 WORKDIR /nethermind -COPY --from=secp256k1 /source/.libs/libsecp256k1.so . \ No newline at end of file +COPY --from=secp256k1 /source/.libs/libsecp256k1.so . diff --git a/Dockerfile.stateRunner b/Dockerfile.stateRunner index 93cfc43b71b..762f3f0fc34 100644 --- a/Dockerfile.stateRunner +++ b/Dockerfile.stateRunner @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:5.0-alpine AS build +FROM mcr.microsoft.com/dotnet/sdk@sha256:6edc3ea5eb689712b9ec6ad5777e32c5bfa51db94a3e5fb069278ccf3b74b7c1 AS build COPY . . @@ -6,7 +6,7 @@ RUN apk add git && \ git submodule update --init src/Dirichlet src/int256 src/Math.Gmp.Native && \ dotnet publish src/Nethermind/Nethermind.State.Test.Runner -c release -o out -FROM mcr.microsoft.com/dotnet/sdk:5.0-alpine +FROM mcr.microsoft.com/dotnet/sdk@sha256:6edc3ea5eb689712b9ec6ad5777e32c5bfa51db94a3e5fb069278ccf3b74b7c1 COPY --from=build /out . diff --git a/README.md b/README.md index 7cb5adeb009..d10397685f2 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,16 @@ dotnet run -c Release --no-build -- --config mainnet Official Nethermind docker images are available on [Docker Hub](https://hub.docker.com/r/nethermind/nethermind). +### Get digest of docker image + +In case of any docker image need to be updated in the repository, you can update the digest of this images with the next commands + +```sh +docker inspect --format='{{index .RepoDigests 0}}' +``` + +The output must show the image digest, and then you can copy that output in the `FROM` tag inside the Dockerfile + ## Test If you want to run the Nethermind or Ethereum Foundation tests, then: diff --git a/src/Dockerfile.globalization b/src/Dockerfile.globalization deleted file mode 100644 index 4d6f05ccba5..00000000000 --- a/src/Dockerfile.globalization +++ /dev/null @@ -1,25 +0,0 @@ -FROM microsoft/dotnet-nightly:2.1-sdk AS build-env -WORKDIR /app - -# copy csproj and restore as distinct layers -COPY *.csproj ./ -COPY NuGet.config ./ -RUN dotnet restore - -# copy everything else and build -COPY . ./ -RUN dotnet publish -c Release -o out --no-restore - - -# build runtime image -FROM microsoft/dotnet-nightly:2.1-runtime-alpine - -ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT false -RUN apk add --no-cache icu-libs - -ENV LC_ALL en_US.UTF-8 -ENV LANG en_US.UTF-8 - -WORKDIR /app -COPY --from=build-env /app/out ./ -ENTRYPOINT ["dotnet", "dotnetapp.dll"] diff --git a/src/Nethermind/Nethermind.DataMarketplace.Providers.Test.EndToEnd/prometheus/Dockerfile b/src/Nethermind/Nethermind.DataMarketplace.Providers.Test.EndToEnd/prometheus/Dockerfile index 734d57dd392..b9d2c5cd6e7 100644 --- a/src/Nethermind/Nethermind.DataMarketplace.Providers.Test.EndToEnd/prometheus/Dockerfile +++ b/src/Nethermind/Nethermind.DataMarketplace.Providers.Test.EndToEnd/prometheus/Dockerfile @@ -1,3 +1,3 @@ -FROM prom/prometheus +FROM prom/prometheus@sha256:5accb68b56ba452e449a5e552411acaeabbbe0f087acf19a1157ce3dd10a8bed WORKDIR /app -COPY ./prometheus.yml /etc/prometheus/prometheus.yml \ No newline at end of file +COPY ./prometheus.yml /etc/prometheus/prometheus.yml diff --git a/src/tests b/src/tests index 5d534e37b80..4d539de6788 160000 --- a/src/tests +++ b/src/tests @@ -1 +1 @@ -Subproject commit 5d534e37b80e9310e8c7751f805ca481a451123e +Subproject commit 4d539de6788147a0376b70f2bc71a8f818872164