Introduce a proper multi-stage dockerfile
This commit is contained in:
parent
8e402852b4
commit
7d34852cc7
1 changed files with 17 additions and 21 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue