From 7d34852cc75a937e94f31c33e22aa70add8ac751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Fri, 26 May 2023 15:42:15 +0200 Subject: [PATCH] Introduce a proper multi-stage dockerfile --- docker/node/Dockerfile | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/docker/node/Dockerfile b/docker/node/Dockerfile index cb409594..3b6c8ad6 100644 --- a/docker/node/Dockerfile +++ b/docker/node/Dockerfile @@ -1,37 +1,32 @@ -ARG ENV_REPOSITORY=nanocurrency/nano-env -ARG COMPILER=gcc -FROM ${ENV_REPOSITORY}:${COMPILER} +FROM ubuntu:22.04 as builder -ARG NETWORK=live +ARG COMPILER=gcc +ARG NANO_NETWORK=live ARG CI_TAG=DEV_BUILD ARG CI_BUILD=OFF ARG CI_VERSION_PRE_RELEASE=OFF -ADD ./ /tmp/src -WORKDIR /tmp/build +# Install build dependencies +COPY ./ci/prepare/linux /tmp/prepare +RUN /tmp/prepare/prepare.sh -RUN \ -cmake /tmp/src \ --DCI_BUILD=${CI_BUILD} \ --DCI_VERSION_PRE_RELEASE=${CI_VERSION_PRE_RELEASE} \ --DPORTABLE=1 \ --DACTIVE_NETWORK=nano_${NETWORK}_network +COPY ./ /tmp/src +WORKDIR /tmp/src -RUN \ -make nano_node -j $(nproc) && \ -make nano_rpc -j $(nproc) && \ -cd .. && \ -echo ${NETWORK} >/etc/nano-network +# Build node +RUN ci/build-node.sh +RUN echo ${NETWORK} >/etc/nano-network FROM ubuntu:22.04 RUN groupadd --gid 1000 nanocurrency && \ useradd --uid 1000 --gid nanocurrency --shell /bin/bash --create-home nanocurrency -COPY --from=0 /tmp/build/nano_node /usr/bin -COPY --from=0 /tmp/build/nano_rpc /usr/bin -COPY --from=0 /tmp/src/api/ /usr/bin/api/ -COPY --from=0 /etc/nano-network /etc +COPY --from=builder /tmp/src/build/nano_node /usr/bin +COPY --from=builder /tmp/src/build/nano_rpc /usr/bin +COPY --from=builder /tmp/src/api/ /usr/bin/api/ +COPY --from=builder /etc/nano-network /etc + COPY docker/node/entry.sh /usr/bin/entry.sh COPY docker/node/config /usr/share/nano/config RUN chmod +x /usr/bin/entry.sh @@ -44,5 +39,6 @@ USER root ENV PATH="${PATH}:/usr/bin" ENTRYPOINT ["/usr/bin/entry.sh"] CMD ["nano_node", "daemon", "-l"] + ARG REPOSITORY=nanocurrency/nano-node LABEL org.opencontainers.image.source https://github.com/$REPOSITORY