forked from lthn/blockchain
docker: adjustable library versions (#331)
* Adjustable lib versions via docker build args * gha for docker build. * removes the push to repo * moves arg's to the top of the file. * Delete docker-build.yml
This commit is contained in:
parent
533fe896ff
commit
1a5429a723
1 changed files with 70 additions and 39 deletions
|
|
@ -17,12 +17,19 @@
|
|||
# To stop container:
|
||||
# docker stop zanod
|
||||
#
|
||||
# To build with different lib versions, pass through --build-arg's
|
||||
# docker build --build-arg OPENSSL_VERSION_DOT=1.1.1n --build-arg OPENSSL_HASH=40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a -f utils/docker/Dockerfile .
|
||||
#
|
||||
# Available Build Args
|
||||
# - CMake Version: CMAKE_VERSION_DOT, CMAKE_HASH
|
||||
# - Boost Version: BOOST_VERSION, BOOST_VERSION_DOT, BOOST_HASH
|
||||
# - OpenSSL Version: OPENSSL_VERSION_DOT, OPENSSL_HASH
|
||||
|
||||
#
|
||||
# Build Zano
|
||||
#
|
||||
|
||||
FROM ubuntu:18.04 as zano-build
|
||||
FROM ubuntu:18.04 as build-prep
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y build-essential \
|
||||
|
|
@ -34,47 +41,71 @@ RUN apt update && \
|
|||
|
||||
WORKDIR /root
|
||||
|
||||
# CMake 3.15.5
|
||||
# Lib Settings
|
||||
ARG CMAKE_VERSION_DOT=3.15.5
|
||||
ARG CMAKE_HASH=62e3e7d134a257e13521e306a9d3d1181ab99af8fcae66699c8f98754fc02dda
|
||||
|
||||
RUN curl https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5-Linux-x86_64.sh -OL &&\
|
||||
echo '62e3e7d134a257e13521e306a9d3d1181ab99af8fcae66699c8f98754fc02dda cmake-3.15.5-Linux-x86_64.sh' | sha256sum -c - &&\
|
||||
mkdir /opt/cmake &&\
|
||||
sh cmake-3.15.5-Linux-x86_64.sh --prefix=/opt/cmake --skip-license &&\
|
||||
ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake &&\
|
||||
cmake --version &&\
|
||||
rm cmake-3.15.5-Linux-x86_64.sh
|
||||
ARG BOOST_VERSION=1_70_0
|
||||
ARG BOOST_VERSION_DOT=1.70.0
|
||||
ARG BOOST_HASH=430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778
|
||||
|
||||
ARG OPENSSL_VERSION_DOT=1.1.1n
|
||||
ARG OPENSSL_HASH=40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a
|
||||
|
||||
# Boost 1.70
|
||||
|
||||
RUN curl https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.bz2 -OL &&\
|
||||
echo '430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778 boost_1_70_0.tar.bz2' | sha256sum -c - &&\
|
||||
tar -xjf boost_1_70_0.tar.bz2 &&\
|
||||
rm boost_1_70_0.tar.bz2 &&\
|
||||
cd boost_1_70_0 &&\
|
||||
./bootstrap.sh --with-libraries=system,filesystem,thread,date_time,chrono,regex,serialization,atomic,program_options,locale,timer,log &&\
|
||||
./b2 &&\
|
||||
cd ..
|
||||
|
||||
ENV BOOST_ROOT=/root/boost_1_70_0
|
||||
|
||||
|
||||
# OpenSSL 1.1.1n
|
||||
|
||||
RUN curl https://www.openssl.org/source/openssl-1.1.1n.tar.gz -OL &&\
|
||||
echo '40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a openssl-1.1.1n.tar.gz' | sha256sum -c - &&\
|
||||
tar xaf openssl-1.1.1n.tar.gz &&\
|
||||
rm openssl-1.1.1n.tar.gz &&\
|
||||
cd openssl-1.1.1n &&\
|
||||
./config --prefix=/root/openssl --openssldir=/root/openssl shared zlib &&\
|
||||
make &&\
|
||||
make test &&\
|
||||
make install &&\
|
||||
cd .. &&\
|
||||
rm -rf openssl-1.1.1n
|
||||
|
||||
# Environment Variables
|
||||
ENV BOOST_ROOT /root/boost_${BOOST_VERSION}
|
||||
ENV OPENSSL_ROOT_DIR=/root/openssl
|
||||
|
||||
##########################################################
|
||||
# Split download & compile to use dockers caching layers #
|
||||
##########################################################
|
||||
|
||||
# Download CMake
|
||||
RUN set -ex \
|
||||
&& curl https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION_DOT}/cmake-${CMAKE_VERSION_DOT}-Linux-x86_64.sh -OL\
|
||||
&& echo "${CMAKE_HASH} cmake-${CMAKE_VERSION_DOT}-Linux-x86_64.sh" | sha256sum -c
|
||||
|
||||
# Download Boost
|
||||
RUN set -ex \
|
||||
&& curl -L -o boost_${BOOST_VERSION}.tar.bz2 https://downloads.sourceforge.net/project/boost/boost/${BOOST_VERSION_DOT}/boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& sha256sum boost_${BOOST_VERSION}.tar.bz2 \
|
||||
&& echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c\
|
||||
&& tar -xvf boost_${BOOST_VERSION}.tar.bz2
|
||||
|
||||
|
||||
# Download OpenSSL
|
||||
RUN curl https://www.openssl.org/source/openssl-${OPENSSL_VERSION_DOT}.tar.gz -OL \
|
||||
&& sha256sum openssl-${OPENSSL_VERSION_DOT}.tar.gz \
|
||||
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION_DOT}.tar.gz" | sha256sum -c
|
||||
|
||||
|
||||
# Compile CMake
|
||||
RUN set -ex \
|
||||
&& mkdir /opt/cmake \
|
||||
&& sh cmake-3.15.5-Linux-x86_64.sh --prefix=/opt/cmake --skip-license\
|
||||
&& ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake\
|
||||
&& cmake --version\
|
||||
&& rm cmake-3.15.5-Linux-x86_64.sh
|
||||
|
||||
# Compile Boost
|
||||
RUN set -ex \
|
||||
&& cd boost_${BOOST_VERSION} \
|
||||
&& ./bootstrap.sh --with-libraries=system,filesystem,thread,date_time,chrono,regex,serialization,atomic,program_options,locale,timer,log \
|
||||
&& ./b2
|
||||
|
||||
# Compile OpenSSL
|
||||
RUN set -ex \
|
||||
&& tar xaf openssl-${OPENSSL_VERSION_DOT}.tar.gz \
|
||||
&& rm openssl-${OPENSSL_VERSION_DOT}.tar.gz \
|
||||
&& cd openssl-${OPENSSL_VERSION_DOT} \
|
||||
&& ./config --prefix=/root/openssl --openssldir=/root/openssl shared zlib \
|
||||
&& make \
|
||||
&& make test \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf openssl-${OPENSSL_VERSION_DOT}
|
||||
|
||||
FROM build-prep as build
|
||||
|
||||
# Zano
|
||||
|
||||
|
|
@ -102,8 +133,8 @@ RUN useradd -ms /bin/bash zano &&\
|
|||
USER zano:zano
|
||||
|
||||
WORKDIR /home/zano
|
||||
COPY --chown=zano:zano --from=zano-build /root/zano/build/src/zanod .
|
||||
COPY --chown=zano:zano --from=zano-build /root/zano/build/src/simplewallet .
|
||||
COPY --chown=zano:zano --from=build /root/zano/build/src/zanod .
|
||||
COPY --chown=zano:zano --from=build /root/zano/build/src/simplewallet .
|
||||
|
||||
# blockchain loaction
|
||||
VOLUME /home/zano/.Zano
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue