codex-contracts-eth/docker/Dockerfile

41 lines
791 B
Docker

# Variables
ARG BUILDER=node:18.17.0-slim
ARG IMAGE=${BUILDER}
ARG APP_USER=root
ARG APP_HOME=/hardhat
# Build
FROM ${BUILDER} AS builder
ARG APP_USER
ARG APP_HOME
# Install fail on arm64 without additional packages
RUN if [ $(uname -m) = "aarch64" ] ; then \
if [ $(awk -F '=' '/^ID/ {print $2}' /etc/os-release) = "alpine" ] ; then \
apk add --update --no-cache python3 make g++ ; \
else \
apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* ; \
fi \
fi
WORKDIR ${APP_HOME}
COPY --chown=${APP_USER}:${APP_USER} . .
RUN npm install
# Create
FROM ${IMAGE}
ARG APP_USER
ARG APP_HOME
WORKDIR ${APP_HOME}
COPY --chown=${APP_USER}:${APP_USER} --from=builder ${APP_HOME} .
EXPOSE 8545
ENTRYPOINT ["npm", "start"]