From 0a29df1d6dd60bfd490ae4fa5d7b5a6f95a6ee2e Mon Sep 17 00:00:00 2001 From: Andrea Franz Date: Thu, 9 Nov 2023 10:50:02 +0100 Subject: [PATCH] use 2 different base images to build and run to decrease image size from 1.5GB to 800MG --- Dockerfile | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4cdfb46..5c72582 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -FROM node:20-slim - +FROM node:20-slim as base RUN apt-get update && \ apt-get install -y python3 curl git build-essential psmisc && \ apt-get clean @@ -7,17 +6,37 @@ RUN apt-get update && \ COPY . /app WORKDIR /app -ENV DEV_CHAIN_ID=313371 -ENV PNPM_HOME="/pnpm" -ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable # Check when foundry supports dumping events # https://github.com/foundry-rs/foundry/issues/5906 RUN curl -L https://foundry.paradigm.xyz | bash -RUN ~/.foundry/bin/foundryup +# install a previous versions that doesn't have the rpc method hardhat_metadata. +# hardhat expects an integer but the output from anvil is an hex string +RUN ~/.foundry/bin/foundryup -v nightly-34f684ddfacc5b2ed371353ba6f730c485616ffe + +ENV PATH="$PNPM_HOME:$PATH" + +RUN corepack enable RUN pnpm install + +FROM node:16-bullseye-slim as prod +RUN apt-get update && \ + apt-get install -y curl git && \ + apt-get clean -y && \ + rm -rf /var/lib/apt/lists/* + +COPY . /app +WORKDIR /app + +COPY --from=base /app/node_modules /app/node_modules +COPY --from=base /root/.foundry/bin/anvil /root/.foundry/bin/anvil + +ENV DEV_CHAIN_ID=313371 +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + RUN pnpm hardhat compile EXPOSE 8545/tcp