Fetch dependencies from APT repository when building Linux version of the node (#3896)
* Dockerfiles: use `ubuntu:20.04` as base image and install all dependencies with default system package manager * Bring back backtrace workaround Co-authored-by: Piotr Wójcik <3044353+fikumikudev@users.noreply.github.com>
This commit is contained in:
parent
37860c6476
commit
e1d9cb0ba4
9 changed files with 33 additions and 62 deletions
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
|
@ -45,7 +45,7 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
TEST_USE_ROCKSDB: [0, 1]
|
||||
COMPILER: [gcc, clang-6]
|
||||
COMPILER: [gcc, clang]
|
||||
RELEASE:
|
||||
- ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||
runs-on: ubuntu-20.04
|
||||
|
|
|
@ -59,7 +59,7 @@ docker_deploy()
|
|||
if [[ "$GITHUB_WORKFLOW" = "Develop" ]]; then
|
||||
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:base"
|
||||
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:gcc"
|
||||
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:clang-6"
|
||||
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:clang"
|
||||
echo "Deployed nano-env"
|
||||
exit 0
|
||||
else
|
||||
|
|
|
@ -5,7 +5,7 @@ scripts="$PWD/ci"
|
|||
if [[ "$GITHUB_WORKFLOW" = "Develop" ]]; then
|
||||
"$scripts"/custom-timeout.sh 30 docker push "ghcr.io/${GITHUB_REPOSITORY}/nano-env:base"
|
||||
"$scripts"/custom-timeout.sh 30 docker push "ghcr.io/${GITHUB_REPOSITORY}/nano-env:gcc"
|
||||
"$scripts"/custom-timeout.sh 30 docker push "ghcr.io/${GITHUB_REPOSITORY}/nano-env:clang-6"
|
||||
"$scripts"/custom-timeout.sh 30 docker push "ghcr.io/${GITHUB_REPOSITORY}/nano-env:clang"
|
||||
else
|
||||
tags=$(docker images --format '{{.Repository}}:{{.Tag }}' | grep "ghcr.io" | grep -vE "env|none")
|
||||
for a in $tags; do
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This enables IPv6 support in docker, needed to run node tests inside docker container
|
||||
sudo mkdir -p /etc/docker && echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json && sudo service docker restart
|
||||
|
||||
ci/build-docker-image.sh docker/ci/Dockerfile-base nanocurrency/nano-env:base
|
||||
|
@ -7,6 +8,6 @@ if [[ "${COMPILER:-}" != "" ]]; then
|
|||
ci/build-docker-image.sh docker/ci/Dockerfile-gcc nanocurrency/nano-env:${COMPILER}
|
||||
else
|
||||
ci/build-docker-image.sh docker/ci/Dockerfile-gcc nanocurrency/nano-env:gcc
|
||||
ci/build-docker-image.sh docker/ci/Dockerfile-clang-6 nanocurrency/nano-env:clang-6
|
||||
ci/build-docker-image.sh docker/ci/Dockerfile-clang nanocurrency/nano-env:clang
|
||||
ci/build-docker-image.sh docker/ci/Dockerfile-centos nanocurrency/nano-env:centos
|
||||
fi
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM ubuntu:18.04
|
||||
FROM ubuntu:20.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
@ -7,11 +7,8 @@ build-essential \
|
|||
g++ \
|
||||
wget \
|
||||
python \
|
||||
zlib1g-dev
|
||||
|
||||
RUN wget -O cmake_install.sh https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4-Linux-x86_64.sh && \
|
||||
chmod +x cmake_install.sh && \
|
||||
./cmake_install.sh --prefix=/usr --exclude-subdir --skip-license
|
||||
zlib1g-dev \
|
||||
cmake
|
||||
|
||||
RUN apt-get update -qq && apt-get install -yqq \
|
||||
qt5-default \
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
FROM nanocurrency/nano-env:base
|
||||
ARG ENV_REPOSITORY=nanocurrency/nano-env
|
||||
FROM ${ENV_REPOSITORY}:base
|
||||
|
||||
RUN apt-get update -qq && apt-get install -yqq \
|
||||
clang-3.9 lldb-3.9 git
|
||||
clang \
|
||||
lldb \
|
||||
git \
|
||||
libboost-all-dev
|
||||
|
||||
ENV CXX=/usr/bin/clang++
|
||||
ENV CC=/usr/bin/clang
|
||||
RUN ln -s /usr/bin/clang-3.9 /usr/bin/clang
|
||||
RUN ln -s /usr/bin/clang++-3.9 /usr/bin/clang++
|
||||
RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
|
||||
RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
|
||||
ENV BOOST_ROOT=/tmp/boost
|
||||
|
||||
ADD util/build_prep/fetch_boost.sh fetch_boost.sh
|
||||
RUN ./fetch_boost.sh
|
||||
|
||||
# workaround to get a path that can be easily passed into cmake for
|
||||
# BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
|
||||
# see https://www.boost.org/doc/libs/1_70_0/doc/html/stacktrace/configuration_and_build.html#stacktrace.configuration_and_build.f3
|
||||
|
||||
RUN ln -s /usr/lib/gcc/x86_64-linux-gnu/5/include/backtrace.h /tmp/backtrace.h
|
||||
|
||||
ARG REPOSITORY=nanocurrency/nano-node
|
||||
LABEL org.opencontainers.image.source https://github.com/$REPOSITORY
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
FROM nanocurrency/nano-env:base
|
||||
# need https for llvm
|
||||
RUN apt-get update && apt-get install apt-transport-https ca-certificates -yqq
|
||||
|
||||
RUN apt-get update && apt-get install -yqq software-properties-common && \
|
||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
|
||||
apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main" && \
|
||||
apt-get update -qq && apt-get install -yqq \
|
||||
clang-6.0 lldb-6.0 libfuzzer-6.0-dev git
|
||||
|
||||
ENV CXX=/usr/bin/clang++
|
||||
ENV CC=/usr/bin/clang
|
||||
RUN ln -s /usr/bin/clang-6.0 /usr/bin/clang
|
||||
RUN ln -s /usr/bin/clang++-6.0 /usr/bin/clang++
|
||||
RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
|
||||
RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
|
||||
ENV BOOST_ROOT=/tmp/boost
|
||||
|
||||
ADD util/build_prep/fetch_boost.sh fetch_boost.sh
|
||||
|
||||
RUN COMPILER=clang-6 ./fetch_boost.sh
|
||||
|
||||
# workaround to get a path that can be easily passed into cmake for
|
||||
# BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
|
||||
# see https://www.boost.org/doc/libs/1_70_0/doc/html/stacktrace/configuration_and_build.html#stacktrace.configuration_and_build.f3
|
||||
|
||||
RUN ln -s /usr/lib/gcc/x86_64-linux-gnu/5/include/backtrace.h /tmp/backtrace.h
|
||||
ARG REPOSITORY=nanocurrency/nano-node
|
||||
LABEL org.opencontainers.image.source https://github.com/$REPOSITORY
|
|
@ -1,11 +1,9 @@
|
|||
FROM nanocurrency/nano-env:base
|
||||
ARG ENV_REPOSITORY=nanocurrency/nano-env
|
||||
FROM ${ENV_REPOSITORY}:base
|
||||
|
||||
RUN apt update -qq && apt-get install -yqq git
|
||||
RUN apt-get update -qq && apt-get install -yqq \
|
||||
git \
|
||||
libboost-all-dev
|
||||
|
||||
ENV BOOST_ROOT=/tmp/boost
|
||||
|
||||
ADD util/build_prep/fetch_boost.sh fetch_boost.sh
|
||||
|
||||
RUN COMPILER=gcc ./fetch_boost.sh
|
||||
ARG REPOSITORY=nanocurrency/nano-node
|
||||
LABEL org.opencontainers.image.source https://github.com/$REPOSITORY
|
||||
|
|
|
@ -1,23 +1,29 @@
|
|||
FROM nanocurrency/nano-env:gcc
|
||||
ARG ENV_REPOSITORY=nanocurrency/nano-env
|
||||
ARG COMPILER=gcc
|
||||
FROM ${ENV_REPOSITORY}:${COMPILER}
|
||||
|
||||
ARG NETWORK=live
|
||||
ARG CI_TAG=DEV_BUILD
|
||||
ARG CI_BUILD=OFF
|
||||
ADD ./ /tmp/src
|
||||
|
||||
RUN mkdir /tmp/build && \
|
||||
cd /tmp/build && \
|
||||
cmake /tmp/src -DCI_BUILD=${CI_BUILD} \
|
||||
-DBOOST_ROOT=${BOOST_ROOT} -DPORTABLE=1 \
|
||||
WORKDIR /tmp/build
|
||||
|
||||
RUN \
|
||||
cmake /tmp/src \
|
||||
-DCI_BUILD=${CI_BUILD} \
|
||||
-DPORTABLE=1 \
|
||||
-DACTIVE_NETWORK=nano_${NETWORK}_network \
|
||||
-DNANO_POW_SERVER=ON -DNANO_SHARED_BOOST=ON && \
|
||||
-DNANO_POW_SERVER=ON
|
||||
|
||||
RUN \
|
||||
make nano_node -j $(nproc) && \
|
||||
make nano_rpc -j $(nproc) && \
|
||||
make nano_pow_server -j $(nproc) && \
|
||||
cd .. && \
|
||||
echo ${NETWORK} >/etc/nano-network
|
||||
|
||||
FROM ubuntu:18.04
|
||||
FROM ubuntu:20.04
|
||||
|
||||
RUN groupadd --gid 1000 nanocurrency && \
|
||||
useradd --uid 1000 --gid nanocurrency --shell /bin/bash --create-home nanocurrency
|
||||
|
@ -29,7 +35,6 @@ COPY --from=0 /tmp/src/api/ /usr/bin/api/
|
|||
COPY --from=0 /etc/nano-network /etc
|
||||
COPY docker/node/entry.sh /usr/bin/entry.sh
|
||||
COPY docker/node/config /usr/share/nano/config
|
||||
COPY --from=0 /tmp/boost/lib/* /usr/local/lib/
|
||||
RUN chmod +x /usr/bin/entry.sh
|
||||
RUN ln -s /usr/bin/nano_node /usr/bin/rai_node
|
||||
RUN ldconfig
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue