From 648ef4ee66152a499c2a55c8a715dda55def914a Mon Sep 17 00:00:00 2001 From: danielclough Date: Thu, 24 Dec 2020 13:15:07 +0100 Subject: [PATCH 01/25] add net=host --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4930cbf43..4826201e0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,6 +2,7 @@ pipeline { agent { dockerfile { filename 'contrib/docker/moreBuilder/Dockerfile.ubase' + args '--net=host' } } @@ -13,4 +14,4 @@ pipeline { } } -} \ No newline at end of file +} From f916662d90f9b8451f71548de31046c6ff3a6e1d Mon Sep 17 00:00:00 2001 From: danielclough Date: Thu, 24 Dec 2020 13:20:16 +0100 Subject: [PATCH 02/25] fix typo --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4826201e0..44eb455b7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,7 @@ pipeline { agent { dockerfile { filename 'contrib/docker/moreBuilder/Dockerfile.ubase' - args '--net=host' + args '--network=host' } } From 91b6717f0a20986767a99c6f2cb98db010dcae6c Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 15:10:58 +0100 Subject: [PATCH 03/25] add multi-arch support and build from shell script --- .../files}/moreBuilder/Dockerfile.ubase | 62 +++++-- .../files}/moreBuilder/Dockerfile.ubuntu | 0 .../files}/moreBuilder/README.md | 0 .../files}/moreBuilder/build.sh | 0 .Trash-1000/info/moreBuilder.trashinfo | 3 + Jenkinsfile | 21 +-- contrib/docker/Dockerfile.ubase-base | 51 ++++++ contrib/docker/README.md | 10 ++ .../Dockerfile.ubase-aarch64-linux-gnu | 25 +++ .../Dockerfile.ubuntu-aarch64-linux-gnu | 22 +++ .../Dockerfile.ubase-arm-linux-gnueabihf | 24 +++ .../Dockerfile.ubuntu-arm-linux-gnueabihf | 22 +++ contrib/docker/build.sh | 166 ++++++++++++++++++ .../Dockerfile.ubase-x86_64-linux-gnu | 24 +++ .../Dockerfile.ubuntu-x86_64-linux-gnu | 23 +++ 15 files changed, 426 insertions(+), 27 deletions(-) rename {contrib/docker => .Trash-1000/files}/moreBuilder/Dockerfile.ubase (58%) rename {contrib/docker => .Trash-1000/files}/moreBuilder/Dockerfile.ubuntu (100%) rename {contrib/docker => .Trash-1000/files}/moreBuilder/README.md (100%) rename {contrib/docker => .Trash-1000/files}/moreBuilder/build.sh (100%) create mode 100644 .Trash-1000/info/moreBuilder.trashinfo create mode 100755 contrib/docker/Dockerfile.ubase-base create mode 100755 contrib/docker/README.md create mode 100644 contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu create mode 100644 contrib/docker/aarch64-linux-gnu/Dockerfile.ubuntu-aarch64-linux-gnu create mode 100644 contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf create mode 100644 contrib/docker/arm-linux-gnueabihf/Dockerfile.ubuntu-arm-linux-gnueabihf create mode 100755 contrib/docker/build.sh create mode 100644 contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu create mode 100644 contrib/docker/x86_64-linux-gnu/Dockerfile.ubuntu-x86_64-linux-gnu diff --git a/contrib/docker/moreBuilder/Dockerfile.ubase b/.Trash-1000/files/moreBuilder/Dockerfile.ubase similarity index 58% rename from contrib/docker/moreBuilder/Dockerfile.ubase rename to .Trash-1000/files/moreBuilder/Dockerfile.ubase index 77e40f611..fc29a5488 100755 --- a/contrib/docker/moreBuilder/Dockerfile.ubase +++ b/.Trash-1000/files/moreBuilder/Dockerfile.ubase @@ -1,4 +1,4 @@ -FROM ubuntu +FROM ubuntu AS basebase ENV BRANCH=master ENV TZ=America/Los_Angeles RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone @@ -23,37 +23,35 @@ RUN apt-get update && apt-get install -yqq \ gperf \ wget \ jq \ - bc + bc \ + g++-aarch64-linux-gnu \ + binutils-aarch64-linux-gnu -# -# Build Blackcoin More -# - -RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git RUN (wget http://distfiles.gentoo.org/distfiles/db-6.2.38.tar.gz && \ tar -xvf db-6.2.38.tar.gz && \ cd db-6.2.38/build_unix && \ mkdir -p build && \ BDB_PREFIX=$(pwd)/build && \ ../dist/configure --disable-shared -disable-replication --enable-cxx --with-pic --prefix=$BDB_PREFIX --with-gui=no --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --disable-man && \ - make install && \ - cd ../.. && \ + make install + +# Build Blackcoin More for AMD64 + +FROM apt-install AS ubase-amd64 + +RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git && \ cd blackcoin-more/ && ./autogen.sh && \ ./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --disable-tests --disable-bench --enable-reduce-exports && \ make -j4 && \ cd src/ && \ strip blackmore*) -# # Prepare for minimal package -# RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ cp /blackcoin-more/contrib/blk /usr/local/bin/ - WORKDIR /parts - RUN cp --parents /usr/local/bin/blk ./ && \ cp --parents /usr/local/bin/blackmored ./ && \ for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ @@ -63,3 +61,41 @@ RUN cp --parents /usr/local/bin/blk ./ && \ for i in `ldd /usr/bin/bc | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ cp /usr/bin/jq --parents ./ && \ for i in `ldd /usr/bin/jq | grep -v linux-vdso.so.1 | grep -v libjq.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done + + + +# Build Blackcoin More + +FROM apt-install AS ubase-aarch64 + +RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git +RUN (wget http://distfiles.gentoo.org/distfiles/db-6.2.38.tar.gz && \ + tar -xvf db-6.2.38.tar.gz && \ + cd db-6.2.38/build_unix && \ + cd depends && \ + make HOST=aarch64-linux-gnu -j4 && \ + cd .. && \ + ./autogen.sh && \ + ./configure --prefix=$PWD/depends/aarch64-linux-gnu --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768" && \ + make -j4 && \ + make install && \ + cd src/ && \ + strip blackmore*) + +# Prepare for minimal package + +RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ + cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ + cp /blackcoin-more/contrib/blk /usr/local/bin/ +WORKDIR /parts +RUN cp --parents /usr/local/bin/blk ./ && \ + cp --parents /usr/local/bin/blackmored ./ && \ + for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp --parents /usr/local/bin/blackmore-cli ./ && \ + for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp /usr/bin/bc --parents ./ && \ + for i in `ldd /usr/bin/bc | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp /usr/bin/jq --parents ./ && \ + for i in `ldd /usr/bin/jq | grep -v linux-vdso.so.1 | grep -v libjq.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done + + diff --git a/contrib/docker/moreBuilder/Dockerfile.ubuntu b/.Trash-1000/files/moreBuilder/Dockerfile.ubuntu similarity index 100% rename from contrib/docker/moreBuilder/Dockerfile.ubuntu rename to .Trash-1000/files/moreBuilder/Dockerfile.ubuntu diff --git a/contrib/docker/moreBuilder/README.md b/.Trash-1000/files/moreBuilder/README.md similarity index 100% rename from contrib/docker/moreBuilder/README.md rename to .Trash-1000/files/moreBuilder/README.md diff --git a/contrib/docker/moreBuilder/build.sh b/.Trash-1000/files/moreBuilder/build.sh similarity index 100% rename from contrib/docker/moreBuilder/build.sh rename to .Trash-1000/files/moreBuilder/build.sh diff --git a/.Trash-1000/info/moreBuilder.trashinfo b/.Trash-1000/info/moreBuilder.trashinfo new file mode 100644 index 000000000..3f2c3d51f --- /dev/null +++ b/.Trash-1000/info/moreBuilder.trashinfo @@ -0,0 +1,3 @@ +[Trash Info] +Path=contrib/docker/moreBuilder +DeletionDate=2020-12-26T06:00:23 diff --git a/Jenkinsfile b/Jenkinsfile index 44eb455b7..16825740a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,17 +1,10 @@ pipeline { - agent { - dockerfile { - filename 'contrib/docker/moreBuilder/Dockerfile.ubase' - args '--network=host' + agent { label 'master' } + stages { + stage('build') { + steps { + sh "contrib/docker/build.sh -o aarch64-linux-gnu blackcoinnl github CoinBlack env.GIT_LOCAL_BRANCH Etc/UTC" + } + } } - - } - stages { - stage('Build') { - steps { - sh 'blackmored -daemon' - } - } - - } } diff --git a/contrib/docker/Dockerfile.ubase-base b/contrib/docker/Dockerfile.ubase-base new file mode 100755 index 000000000..1bb92633b --- /dev/null +++ b/contrib/docker/Dockerfile.ubase-base @@ -0,0 +1,51 @@ +FROM ubuntu AS ubase +ENV BRANCH=master +ENV TZ=America/Los_Angeles +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && apt-get install -yqq \ + git \ + make \ + file \ + autoconf \ + automake \ + libtool \ + libevent-dev \ + build-essential \ + autotools-dev \ + pkg-config \ + bsdmainutils \ + python3 \ + libevent-dev \ + libboost-all-dev \ + libminiupnpc-dev \ + libzmq3-dev \ + libssl-dev \ + gperf \ + wget \ +# blk commandline utility + jq \ + bc \ +# cross compile arm + g++-arm-linux-gnueabihf \ + binutils-arm-linux-gnueabihf \ +# cross compile aarch64 + g++-aarch64-linux-gnu \ + binutils-aarch64-linux-gnu \ +# cross compile macOS + curl \ + librsvg2-bin \ + libtiff-tools \ + bsdmainutils \ + cmake \ + imagemagick \ + libcap-dev \ + libz-dev \ + libbz2-dev \ + python3-setuptools \ + libtinfo5 + +FROM ubase AS ubase-base + +RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git + + diff --git a/contrib/docker/README.md b/contrib/docker/README.md new file mode 100755 index 000000000..09c603f08 --- /dev/null +++ b/contrib/docker/README.md @@ -0,0 +1,10 @@ +## To Build + +#### Log in to [Docker Hub](https://hub.docker.com). + +`docker login` + +#### Build + +`moreBuilder/build.sh` + diff --git a/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu b/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu new file mode 100644 index 000000000..dbcf31e96 --- /dev/null +++ b/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu @@ -0,0 +1,25 @@ +FROM ubase-base AS ubase-aarch64-linux-gnu + +COPY aarch64-linux-gnu ./aarch64-linux-gnu +WORKDIR /blackcoin-more +RUN (git clean -xf && \ + ./autogen.sh && \ + ./configure --prefix=/aarch64-linux-gnu --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ && \ + make -j4 && \ + make install && \ + cd src/ && \ + /usr/bin/aarch64-linux-gnu-strip blackmore*) + +RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ + cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ + cp /blackcoin-more/contrib/blk /usr/local/bin/ +WORKDIR /aarch64-linux-gnu/parts +RUN cp --parents /usr/local/bin/blk ./ && \ + cp --parents /usr/local/bin/blackmored ./ && \ + for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp --parents /usr/local/bin/blackmore-cli ./ && \ + for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp /usr/bin/bc --parents ./ && \ + cp /usr/bin/jq --parents ./ +WORKDIR / +RUN ls /blackcoin-more/src | grep blackmore && ls /usr/local/bin && ls /aarch64-linux-gnu/parts/usr \ No newline at end of file diff --git a/contrib/docker/aarch64-linux-gnu/Dockerfile.ubuntu-aarch64-linux-gnu b/contrib/docker/aarch64-linux-gnu/Dockerfile.ubuntu-aarch64-linux-gnu new file mode 100644 index 000000000..104e75e3f --- /dev/null +++ b/contrib/docker/aarch64-linux-gnu/Dockerfile.ubuntu-aarch64-linux-gnu @@ -0,0 +1,22 @@ +FROM ubase-aarch64-linux-gnu AS ubuntu-aarch64-linux-gnu + +# Collect dependencies + +FROM ubuntu +ENV TZ=America/Los_Angeles +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && \ + apt-get -yqq upgrade && \ + apt-get -yqq install \ + libboost-all-dev \ + libzmq3-dev \ + libminiupnpc-dev + +# Copy the binaries to our new container +COPY --from=ubase-aarch64-linux-gnu /blackcoin-more/src/blackmored /usr/local/bin +COPY --from=ubase-aarch64-linux-gnu /blackcoin-more/src/blackmore-cli /usr/local/bin +COPY --from=ubase-aarch64-linux-gnu /usr/bin/bc /usr/bin +COPY --from=ubase-aarch64-linux-gnu /usr/bin/jq /usr/bin + +# Expose the port for the RPC interface +EXPOSE 15714/tcp \ No newline at end of file diff --git a/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf b/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf new file mode 100644 index 000000000..50c18de7f --- /dev/null +++ b/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf @@ -0,0 +1,24 @@ +FROM ubase-base AS ubase-arm-linux-gnueabihf + +COPY arm-linux-gnueabihf ./arm-linux-gnueabihf +WORKDIR /blackcoin-more +RUN (git clean -xf && \ + ./autogen.sh && \ + ./configure --prefix=/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ && \ + make -j4 && \ + make install && \ + cd src/ && \ + /usr/bin/arm-linux-gnueabihf-strip blackmore*) + +RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ + cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ + cp /blackcoin-more/contrib/blk /usr/local/bin/ +WORKDIR /arm-linux-gnueabihf/parts +RUN cp --parents /usr/local/bin/blk ./ && \ + cp --parents /usr/local/bin/blackmored ./ && \ + for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp --parents /usr/local/bin/blackmore-cli ./ && \ + for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp /usr/bin/bc --parents ./ && \ + cp /usr/bin/jq --parents ./ +WORKDIR / \ No newline at end of file diff --git a/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubuntu-arm-linux-gnueabihf b/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubuntu-arm-linux-gnueabihf new file mode 100644 index 000000000..0f6ac205c --- /dev/null +++ b/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubuntu-arm-linux-gnueabihf @@ -0,0 +1,22 @@ +FROM ubase-arm-linux-gnueabihf AS ubuntu-arm-linux-gnueabihf + +# Collect dependencies + +FROM ubuntu +ENV TZ=America/Los_Angeles +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && \ + apt-get -yqq upgrade && \ + apt-get -yqq install \ + libboost-all-dev \ + libzmq3-dev \ + libminiupnpc-dev + +# Copy the binaries from to our new container +COPY --from=ubase-arm-linux-gnueabihf /blackcoin-more/src/blackmored /usr/local/bin +COPY --from=ubase-arm-linux-gnueabihf /blackcoin-more/src/blackmore-cli /usr/local/bin +COPY --from=ubase-arm-linux-gnueabihf /usr/bin/bc /usr/bin +COPY --from=ubase-arm-linux-gnueabihf /usr/bin/jq /usr/bin + +# Expose the port for the RPC interface +EXPOSE 15714/tcp \ No newline at end of file diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh new file mode 100755 index 000000000..8cc00e30e --- /dev/null +++ b/contrib/docker/build.sh @@ -0,0 +1,166 @@ +#!/bin/bash + +BASE_DIR=$(dirname $(realpath $0 )) +Alist="\n +\t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n +\t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n +\t \t \t \t x86_64-linux-gnu \t (aka. Linux AMD64) \n +\t \t \t \t all \t (only works in option mode) \n +" + +usage="Usage: \n +\t option mode: \t \`build.sh -o \` \n +\t interactive: \t \`build.sh -i\` \n +\t \t \t help: \t \`build.sh -h\` \n +\n Architectures: ${Alist} \n +" + +h1=" \t Choose your architecture. ${Alist}" +h2=" \t \t Enter your Docker Hub Account name." +h3=" \t \t \t Enter \"github\" or \"gitlab\"." +h4=" \t Enter the git account name. (eg. \"CoinBlack\" on GitHub, or \"blackcoin\" on GitLab)" +h5=" \t \t \t Enter the branch name. (eg. master)" +h6=" \t \t Enter your timezone. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)" + +help=" \n +\t The defaults in interactive mode, written in for option mode: \n +build.sh -o x86_64-linux-gnu blackcoinnl github CoinBlack v2.13.2.7 America/Los_Angeles \n +\n $h1 \n +\n $h2 \n +\n $h3 \n +\n $h4 \n +\n $h5 \n +\n $h6 \n +" + +case $1 in + +-h) + echo -e ${help} +;; + +-i|-o) + +# Questions for Interactive Mode + +defaultARCH=${2:-x86_64-linux-gnu} +defaultDockerHub=${3:-blackcoinnl} +defaultHubLab=${4:-github} +defaultRepo=${5:-CoinBlack} +defaultBranch=${6:-v2.13.2.7} +defaultTimezone=${7:-America/Los_Angeles} +if [[ $1 == -i ]]; then + echo -e ${Alist} + read -p "For what architecture would you like to build? ($defaultARCH): " architecture + read -p "What is your DockerHub Account Name? ($defaultDockerHub): " DockerHub + read -p "Github or Gitlab? ($defaultHubLab): " HubLab + read -p "What is your GitAccount name? ($defaultRepo): " GitAccount + read -p "What branch/version? ($defaultBranch): " branch + read -p "What is your timezone? (${defaultTimezone}): " timezone + echo "Architecture: ${architecture}" + echo "DockerHub Account: ${DockerHub}" + echo "Git Account: ${HubLab}.com/${GitAccount} ${branch}" + echo "Timezone: ${timezone}" +else + echo "Option Mode!" + echo "Architecture: $2" + echo "DockerHub Account: $3" + echo "Git Account: https://${4}.com/${5} ${6}" + echo "Timezone: ${7}" +fi + +# Architecture + + +architecture=${architecture:-${defaultARCH}} +if [[ ${architecture} == all ]]; then + bash ${BASE_DIR}/build.sh -o aarch64-linux-gnu $3 $4 $5 $6 $7 + bash ${BASE_DIR}/build.sh -o arm-linux-gnueabihf $3 $4 $5 $6 $7 + bash ${BASE_DIR}/build.sh -o x86_64-linux-gnu $3 $4 $5 $6 $7 + exit 0 +else + [[ ${architecture} != ${defaultARCH} ]] && sed -i "s/-x86_64-linux-gnu/-${architecture}/" $0 + + # Download Dependencies + + if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz ]]; then + echo "Dependencies exist!" + else + wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz + + case $architecture in + aarch64-linux-gnu) + checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + || (>&2 echo 'SHASUM FAIL'; exit 1) + ;; + arm-linux-gnueabihf) + checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + || (>&2 echo 'SHASUM FAIL'; exit 1) + ;; + x86_64-linux-gnu) + checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + || (>&2 echo 'SHASUM FAIL'; exit 1) + ;; + esac + echo -e " + Dependencies SHA256SUM GOOD! + " + fi + + # DockerHub Account + + DockerHub=${DockerHub:-${defaultDockerHub}} + [[ $DockerHub != ${defaultDockerHub} ]] && sed -i "s/blackcoinnl/${DockerHub}/" $0 + + # Git Account + + HubLab=${HubLab:-${defaultHubLab}} + [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|github|${HubLab}|" $0 + + GitAccount=${GitAccount:-${defaultRepo}} + [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 + + # branch + + branch=${branch:-${defaultBranch}} + [[ ${branch} != ${defaultBranch} ]] && sed -i "s|ENV branch=v2.13.2.7|ENV branch=${branch}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${branch}|" $0 + + # timezone + + timezone=${timezone:-${defaultTimezone}} + [[ ${timezone} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubase && \ + sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${timezone}|" $0 + + + # build ubase-base + Dockerfile="${BASE_DIR}/Dockerfile.ubase-base" + docker build -t ubase-base --network=host - < ${Dockerfile} + + # build ubase + ubase="ubase-${architecture}" + Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}" + docker build ./${architecture} -t ${ubase} --network=host -f ${Dockerfile} + + # build ubuntu + ubuntu="ubuntu-${architecture}" + Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" + docker build -t ${ubuntu} - --network=host < ${Dockerfile} + docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest + + # build minimal + minimal="minimal-${architecture}" + docker run -itd --network=host --name ${ubase} ${ubase} bash + docker cp ${ubase}:${architecture}/parts ${architecture}/parts + cd ${BASE_DIR}/${architecture} + tar -C parts -c . | docker import - ${minimal} + docker container rm -f ${ubase} + docker tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest +fi +;; +*) +echo -e ${usage} +;; +esac \ No newline at end of file diff --git a/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu b/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu new file mode 100644 index 000000000..3986a62f9 --- /dev/null +++ b/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu @@ -0,0 +1,24 @@ +FROM ubase-base AS ubase-x86_64-linux-gnu + +COPY x86_64-linux-gnu ./x86_64-linux-gnu +WORKDIR /blackcoin-more +RUN (git clean -xf && \ + ./autogen.sh && \ + ./configure --prefix=/x86_64-linux-gnu --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ && \ + make -j4 && \ + make install && \ + cd src/ && \ + /usr/bin/strip blackmore*) + +RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ + cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ + cp /blackcoin-more/contrib/blk /usr/local/bin/ +WORKDIR /x86_64-linux-gnu/parts +RUN cp --parents /usr/local/bin/blk ./ && \ + cp --parents /usr/local/bin/blackmored ./ && \ + for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp --parents /usr/local/bin/blackmore-cli ./ && \ + for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ + cp /usr/bin/bc --parents ./ && \ + cp /usr/bin/jq --parents ./ +WORKDIR / \ No newline at end of file diff --git a/contrib/docker/x86_64-linux-gnu/Dockerfile.ubuntu-x86_64-linux-gnu b/contrib/docker/x86_64-linux-gnu/Dockerfile.ubuntu-x86_64-linux-gnu new file mode 100644 index 000000000..7274df2dd --- /dev/null +++ b/contrib/docker/x86_64-linux-gnu/Dockerfile.ubuntu-x86_64-linux-gnu @@ -0,0 +1,23 @@ +FROM ubase-x86_64-linux-gnu AS ubuntu-x86_64-linux-gnu + +# Collect dependencies + +FROM ubuntu +ENV TZ=America/Los_Angeles +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && \ + apt-get -yqq upgrade && \ + apt-get -yqq install \ + libboost-all-dev \ + libzmq3-dev \ + libminiupnpc-dev + +# Copy the binaries to our new container +COPY --from=ubase-x86_64-linux-gnu /blackcoin-more/src/blackmored /usr/local/bin +COPY --from=ubase-x86_64-linux-gnu /blackcoin-more/src/blackmore-cli /usr/local/bin +COPY --from=ubase-x86_64-linux-gnu /usr/bin/bc /usr/bin +COPY --from=ubase-x86_64-linux-gnu /usr/bin/jq /usr/bin + +# Expose the port for the RPC interface + +EXPOSE 15714/tcp \ No newline at end of file From ac0c3be923ff2439e13ce12dfd89530799be2883 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 15:45:01 +0100 Subject: [PATCH 04/25] fix env and install script --- Jenkinsfile | 2 +- contrib/docker/build.sh | 26 ++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 16825740a..7b07e14e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ pipeline { stages { stage('build') { steps { - sh "contrib/docker/build.sh -o aarch64-linux-gnu blackcoinnl github CoinBlack env.GIT_LOCAL_BRANCH Etc/UTC" + sh "contrib/docker/build.sh -o aarch64-linux-gnu blackcoinnl github CoinBlack" + env.GIT_LOCAL_BRANCH + "Etc/UTC" } } } diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 8cc00e30e..969af5e30 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -84,7 +84,25 @@ else # Download Dependencies if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz ]]; then - echo "Dependencies exist!" + echo "Dependencies exist! Checking sha256sum!"; + + case $architecture in + aarch64-linux-gnu) + checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + || exit 1 + ;; + arm-linux-gnueabihf) + checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + || exit 1 + ;; + x86_64-linux-gnu) + checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + || exit 1 + ;; + esac else wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz @@ -92,17 +110,17 @@ else aarch64-linux-gnu) checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ - || (>&2 echo 'SHASUM FAIL'; exit 1) + || exit 1 ;; arm-linux-gnueabihf) checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ - || (>&2 echo 'SHASUM FAIL'; exit 1) + || exit 1 ;; x86_64-linux-gnu) checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ - || (>&2 echo 'SHASUM FAIL'; exit 1) + || exit 1 ;; esac echo -e " From f83cf7979a033ef42a1150ac65656ed3b5a099e7 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 15:46:47 +0100 Subject: [PATCH 05/25] fix typo --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7b07e14e8..84749c24f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ pipeline { stages { stage('build') { steps { - sh "contrib/docker/build.sh -o aarch64-linux-gnu blackcoinnl github CoinBlack" + env.GIT_LOCAL_BRANCH + "Etc/UTC" + sh "contrib/docker/build.sh -o aarch64-linux-gnu blackcoinnl github CoinBlack " + env.GIT_LOCAL_BRANCH + " Etc/UTC" } } } From e780e7afd10d89d96cb00b90ec224b427cd89cf9 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 15:52:05 +0100 Subject: [PATCH 06/25] absolute path for wget --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 969af5e30..3d244b334 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -104,7 +104,7 @@ else ;; esac else - wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz + /usr/bin/wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz case $architecture in aarch64-linux-gnu) From 7aba573321093366b4e39a27e39035fe8b364922 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 15:59:00 +0100 Subject: [PATCH 07/25] try apt-get wget --- contrib/docker/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 3d244b334..195b32ad9 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -104,6 +104,7 @@ else ;; esac else + [[ -z `which wget` ]] && apt-get install wget /usr/bin/wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz case $architecture in From 0d6cc04d3519a7b18ad453832dfdab67737a86eb Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:16:16 +0100 Subject: [PATCH 08/25] remove absolute path from minimal build --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 195b32ad9..0f6623c2f 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -173,7 +173,7 @@ else minimal="minimal-${architecture}" docker run -itd --network=host --name ${ubase} ${ubase} bash docker cp ${ubase}:${architecture}/parts ${architecture}/parts - cd ${BASE_DIR}/${architecture} + cd ${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} docker tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest From 0d0ae1229fe7ef228b3f37c09e811e93bd9921ea Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:27:54 +0100 Subject: [PATCH 09/25] basepath for Jenkins --- contrib/docker/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 0f6623c2f..40e12e096 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -BASE_DIR=$(dirname $(realpath $0 )) +[[ -z `echo $PWD | grep jenkins_home ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="~/jenkins" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n @@ -173,7 +173,7 @@ else minimal="minimal-${architecture}" docker run -itd --network=host --name ${ubase} ${ubase} bash docker cp ${ubase}:${architecture}/parts ${architecture}/parts - cd ${architecture} + cd ${BASE_DIR}/${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} docker tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest From b13663fad741079c3fd5c447cf7e830aa7fd995d Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:30:53 +0100 Subject: [PATCH 10/25] fix typo --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 40e12e096..833ce66d4 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -[[ -z `echo $PWD | grep jenkins_home ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="~/jenkins" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="~/jenkins" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n From c7642e1f18aa6b56f2480da826446bc9084119bd Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:38:03 +0100 Subject: [PATCH 11/25] if PWD change BASE_PATH --- contrib/docker/build.sh | 54 ++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 833ce66d4..ece58eeaf 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="~/jenkins" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 ))/ || BASE_DIR="" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n @@ -74,53 +74,53 @@ fi architecture=${architecture:-${defaultARCH}} if [[ ${architecture} == all ]]; then - bash ${BASE_DIR}/build.sh -o aarch64-linux-gnu $3 $4 $5 $6 $7 - bash ${BASE_DIR}/build.sh -o arm-linux-gnueabihf $3 $4 $5 $6 $7 - bash ${BASE_DIR}/build.sh -o x86_64-linux-gnu $3 $4 $5 $6 $7 + bash ${BASE_DIR}build.sh -o aarch64-linux-gnu $3 $4 $5 $6 $7 + bash ${BASE_DIR}build.sh -o arm-linux-gnueabihf $3 $4 $5 $6 $7 + bash ${BASE_DIR}build.sh -o x86_64-linux-gnu $3 $4 $5 $6 $7 exit 0 else [[ ${architecture} != ${defaultARCH} ]] && sed -i "s/-x86_64-linux-gnu/-${architecture}/" $0 # Download Dependencies - if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz ]]; then + if [[ -f ${BASE_DIR}depends-${architecture}.tar.xz ]]; then echo "Dependencies exist! Checking sha256sum!"; case $architecture in aarch64-linux-gnu) - checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ || exit 1 ;; arm-linux-gnueabihf) - checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ || exit 1 ;; x86_64-linux-gnu) - checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ || exit 1 ;; esac else [[ -z `which wget` ]] && apt-get install wget - /usr/bin/wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz + /usr/bin/wget -qO ${BASE_DIR}depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz case $architecture in aarch64-linux-gnu) - checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ || exit 1 ;; arm-linux-gnueabihf) - checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ || exit 1 ;; x86_64-linux-gnu) - checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR} \ + checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ || exit 1 ;; esac @@ -137,35 +137,35 @@ else # Git Account HubLab=${HubLab:-${defaultHubLab}} - [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|github|${HubLab}|" $0 + [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" ${BASE_DIR}Dockerfile.ubase && sed -i "s|github|${HubLab}|" $0 GitAccount=${GitAccount:-${defaultRepo}} - [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 + [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 # branch branch=${branch:-${defaultBranch}} - [[ ${branch} != ${defaultBranch} ]] && sed -i "s|ENV branch=v2.13.2.7|ENV branch=${branch}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${branch}|" $0 + [[ ${branch} != ${defaultBranch} ]] && sed -i "s|ENV branch=v2.13.2.7|ENV branch=${branch}|" ${BASE_DIR}Dockerfile.ubase && sed -i "s|v2.13.2.7|${branch}|" $0 # timezone timezone=${timezone:-${defaultTimezone}} - [[ ${timezone} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubase && \ - sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${timezone}|" $0 + [[ ${timezone} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}Dockerfile.ubase && \ + sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${timezone}|" $0 # build ubase-base - Dockerfile="${BASE_DIR}/Dockerfile.ubase-base" + Dockerfile="${BASE_DIR}Dockerfile.ubase-base" docker build -t ubase-base --network=host - < ${Dockerfile} # build ubase ubase="ubase-${architecture}" - Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}" + Dockerfile="${BASE_DIR}${architecture}/Dockerfile.${ubase}" docker build ./${architecture} -t ${ubase} --network=host -f ${Dockerfile} # build ubuntu ubuntu="ubuntu-${architecture}" - Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" + Dockerfile="${BASE_DIR}${architecture}/Dockerfile.${ubuntu}" docker build -t ${ubuntu} - --network=host < ${Dockerfile} docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest @@ -173,7 +173,7 @@ else minimal="minimal-${architecture}" docker run -itd --network=host --name ${ubase} ${ubase} bash docker cp ${ubase}:${architecture}/parts ${architecture}/parts - cd ${BASE_DIR}/${architecture} + cd ${BASE_DIR}${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} docker tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest From a6b73dda8ca41af9f37791890c1377dc9a52eb91 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:50:55 +0100 Subject: [PATCH 12/25] pass $WORKSPACE as $BASE_DIR --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index ece58eeaf..c52ad2866 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 ))/ || BASE_DIR="" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 ))/ || BASE_DIR="${WORKSPACE}" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n From 36fadd90a7302c20a6443230001721ca8980d588 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:52:08 +0100 Subject: [PATCH 13/25] fix typo --- contrib/docker/build.sh | 54 ++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index c52ad2866..09158ebda 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 ))/ || BASE_DIR="${WORKSPACE}" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n @@ -74,53 +74,53 @@ fi architecture=${architecture:-${defaultARCH}} if [[ ${architecture} == all ]]; then - bash ${BASE_DIR}build.sh -o aarch64-linux-gnu $3 $4 $5 $6 $7 - bash ${BASE_DIR}build.sh -o arm-linux-gnueabihf $3 $4 $5 $6 $7 - bash ${BASE_DIR}build.sh -o x86_64-linux-gnu $3 $4 $5 $6 $7 + bash ${BASE_DIR}/build.sh -o aarch64-linux-gnu $3 $4 $5 $6 $7 + bash ${BASE_DIR}/build.sh -o arm-linux-gnueabihf $3 $4 $5 $6 $7 + bash ${BASE_DIR}/build.sh -o x86_64-linux-gnu $3 $4 $5 $6 $7 exit 0 else [[ ${architecture} != ${defaultARCH} ]] && sed -i "s/-x86_64-linux-gnu/-${architecture}/" $0 # Download Dependencies - if [[ -f ${BASE_DIR}depends-${architecture}.tar.xz ]]; then + if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz ]]; then echo "Dependencies exist! Checking sha256sum!"; case $architecture in aarch64-linux-gnu) - checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ + checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; arm-linux-gnueabihf) - checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ + checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; x86_64-linux-gnu) - checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ + checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; esac else [[ -z `which wget` ]] && apt-get install wget - /usr/bin/wget -qO ${BASE_DIR}depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz + /usr/bin/wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz case $architecture in aarch64-linux-gnu) - checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ + checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; arm-linux-gnueabihf) - checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ + checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; x86_64-linux-gnu) - checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}depends-${architecture}.tar.xz -C ${BASE_DIR}\ + checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; esac @@ -137,35 +137,35 @@ else # Git Account HubLab=${HubLab:-${defaultHubLab}} - [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" ${BASE_DIR}Dockerfile.ubase && sed -i "s|github|${HubLab}|" $0 + [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|github|${HubLab}|" $0 GitAccount=${GitAccount:-${defaultRepo}} - [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 + [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 # branch branch=${branch:-${defaultBranch}} - [[ ${branch} != ${defaultBranch} ]] && sed -i "s|ENV branch=v2.13.2.7|ENV branch=${branch}|" ${BASE_DIR}Dockerfile.ubase && sed -i "s|v2.13.2.7|${branch}|" $0 + [[ ${branch} != ${defaultBranch} ]] && sed -i "s|ENV branch=v2.13.2.7|ENV branch=${branch}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${branch}|" $0 # timezone timezone=${timezone:-${defaultTimezone}} - [[ ${timezone} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}Dockerfile.ubase && \ - sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${timezone}|" $0 + [[ ${timezone} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubase && \ + sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${timezone}|" $0 # build ubase-base - Dockerfile="${BASE_DIR}Dockerfile.ubase-base" + Dockerfile="${BASE_DIR}/Dockerfile.ubase-base" docker build -t ubase-base --network=host - < ${Dockerfile} # build ubase ubase="ubase-${architecture}" - Dockerfile="${BASE_DIR}${architecture}/Dockerfile.${ubase}" + Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}" docker build ./${architecture} -t ${ubase} --network=host -f ${Dockerfile} # build ubuntu ubuntu="ubuntu-${architecture}" - Dockerfile="${BASE_DIR}${architecture}/Dockerfile.${ubuntu}" + Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" docker build -t ${ubuntu} - --network=host < ${Dockerfile} docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest @@ -173,7 +173,7 @@ else minimal="minimal-${architecture}" docker run -itd --network=host --name ${ubase} ${ubase} bash docker cp ${ubase}:${architecture}/parts ${architecture}/parts - cd ${BASE_DIR}${architecture} + cd ${BASE_DIR}/${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} docker tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest From 917f2e28aa84f8feaeb26b9840c8f3ea9c846fd2 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:58:06 +0100 Subject: [PATCH 14/25] Jenkins BASE_DIR fix --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 09158ebda..602a9c39c 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/blackcoin-more/contrib/docker/" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n From b2ea24e4f348028866b2f8ba785efd57b92f94b1 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 16:59:15 +0100 Subject: [PATCH 15/25] fix typo --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 602a9c39c..3a621b0fa 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/blackcoin-more/contrib/docker/" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/blackcoin-more/contrib/docker" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n From 00f7f83ac8276da6c41246af5b9cc9b0858dcb60 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 17:01:41 +0100 Subject: [PATCH 16/25] test PWD --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 3a621b0fa..19acaf2e1 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,5 +1,5 @@ #!/bin/bash - +echo $PWD [[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/blackcoin-more/contrib/docker" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n From 1675e5ae4715ea0bcde747efc6bddd36a61b0943 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 17:06:52 +0100 Subject: [PATCH 17/25] fix BASE_DIR --- contrib/docker/build.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 19acaf2e1..40a319cff 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -1,6 +1,5 @@ #!/bin/bash -echo $PWD -[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/blackcoin-more/contrib/docker" +[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/contrib/docker" Alist="\n \t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n \t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n From c95700413a9692b4d91f845cf45680df4d14f074 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 17:12:26 +0100 Subject: [PATCH 18/25] fix cp path --- contrib/docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 40a319cff..ea6a4ed94 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -171,7 +171,7 @@ else # build minimal minimal="minimal-${architecture}" docker run -itd --network=host --name ${ubase} ${ubase} bash - docker cp ${ubase}:${architecture}/parts ${architecture}/parts + docker cp ${ubase}:${architecture}/parts ${BASE_DIR}/${architecture}/parts cd ${BASE_DIR}/${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} From 6cbd66206fa82e2c43a0906c9b5c6326b4e69d12 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 17:30:42 +0100 Subject: [PATCH 19/25] branches other than master don't tag as latest --- contrib/docker/build.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index ea6a4ed94..888fe0128 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -166,7 +166,9 @@ else ubuntu="ubuntu-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" docker build -t ${ubuntu} - --network=host < ${Dockerfile} - docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest + [[ ${branch} == master ]] && \ + docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch} || \ + docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch} # build minimal minimal="minimal-${architecture}" @@ -175,7 +177,9 @@ else cd ${BASE_DIR}/${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} - docker tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest + [[ ${branch} == master ]] && \ + docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch} || \ + docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch} fi ;; *) From a97f82b3f9057b2b76e3bfe0376dd38baaf49d47 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 17:38:26 +0100 Subject: [PATCH 20/25] fix context --- contrib/docker/build.sh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 888fe0128..c7b5b484b 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -160,15 +160,14 @@ else # build ubase ubase="ubase-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}" - docker build ./${architecture} -t ${ubase} --network=host -f ${Dockerfile} + docker build ${BASE_DIR}/${architecture} -t ${ubase} --network=host -f ${Dockerfile} # build ubuntu ubuntu="ubuntu-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" docker build -t ${ubuntu} - --network=host < ${Dockerfile} - [[ ${branch} == master ]] && \ - docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch} || \ - docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch} + [[ ${branch} != master ]] && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch} || \ + (docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest; docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch}) # build minimal minimal="minimal-${architecture}" @@ -177,9 +176,8 @@ else cd ${BASE_DIR}/${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} - [[ ${branch} == master ]] && \ - docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch} || \ - docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch} + [[ ${branch} != master ]] && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch} || \ + (docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest; docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch}) fi ;; *) From fcf76f934bace69499a75927fb8fd96dd4518487 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 17:49:12 +0100 Subject: [PATCH 21/25] make BRANCH an environment variable --- contrib/docker/Dockerfile.ubase-base | 3 ++- contrib/docker/build.sh | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/contrib/docker/Dockerfile.ubase-base b/contrib/docker/Dockerfile.ubase-base index 1bb92633b..66cbc4b60 100755 --- a/contrib/docker/Dockerfile.ubase-base +++ b/contrib/docker/Dockerfile.ubase-base @@ -1,5 +1,6 @@ FROM ubuntu AS ubase -ENV BRANCH=master +ARG BRANCH=master +ENV BRANCH=BRANCH ENV TZ=America/Los_Angeles RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN apt-get update && apt-get install -yqq \ diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index c7b5b484b..6247afe62 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -8,7 +8,7 @@ Alist="\n " usage="Usage: \n -\t option mode: \t \`build.sh -o \` \n +\t option mode: \t \`build.sh -o \` \n \t interactive: \t \`build.sh -i\` \n \t \t \t help: \t \`build.sh -h\` \n \n Architectures: ${Alist} \n @@ -18,7 +18,7 @@ h1=" \t Choose your architecture. ${Alist}" h2=" \t \t Enter your Docker Hub Account name." h3=" \t \t \t Enter \"github\" or \"gitlab\"." h4=" \t Enter the git account name. (eg. \"CoinBlack\" on GitHub, or \"blackcoin\" on GitLab)" -h5=" \t \t \t Enter the branch name. (eg. master)" +h5=" \t \t \t Enter the BRANCH name. (eg. master)" h6=" \t \t Enter your timezone. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)" help=" \n @@ -54,11 +54,11 @@ if [[ $1 == -i ]]; then read -p "What is your DockerHub Account Name? ($defaultDockerHub): " DockerHub read -p "Github or Gitlab? ($defaultHubLab): " HubLab read -p "What is your GitAccount name? ($defaultRepo): " GitAccount - read -p "What branch/version? ($defaultBranch): " branch + read -p "What BRANCH/version? ($defaultBranch): " BRANCH read -p "What is your timezone? (${defaultTimezone}): " timezone echo "Architecture: ${architecture}" echo "DockerHub Account: ${DockerHub}" - echo "Git Account: ${HubLab}.com/${GitAccount} ${branch}" + echo "Git Account: ${HubLab}.com/${GitAccount} ${BRANCH}" echo "Timezone: ${timezone}" else echo "Option Mode!" @@ -141,10 +141,10 @@ else GitAccount=${GitAccount:-${defaultRepo}} [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 - # branch + # BRANCH - branch=${branch:-${defaultBranch}} - [[ ${branch} != ${defaultBranch} ]] && sed -i "s|ENV branch=v2.13.2.7|ENV branch=${branch}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${branch}|" $0 + BRANCH=${BRANCH:-${defaultBranch}} + [[ ${BRANCH} != ${defaultBranch} ]] && sed -i "s|ENV BRANCH=v2.13.2.7|ENV BRANCH=${BRANCH}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${BRANCH}|" $0 # timezone @@ -155,7 +155,7 @@ else # build ubase-base Dockerfile="${BASE_DIR}/Dockerfile.ubase-base" - docker build -t ubase-base --network=host - < ${Dockerfile} + docker build -t ubase-base --build-arg BRANCH=${BRANCH} --network=host - < ${Dockerfile} # build ubase ubase="ubase-${architecture}" @@ -166,8 +166,8 @@ else ubuntu="ubuntu-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" docker build -t ${ubuntu} - --network=host < ${Dockerfile} - [[ ${branch} != master ]] && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch} || \ - (docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest; docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${branch}) + [[ ${BRANCH} != master ]] && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH} || \ + (docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest; docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH}) # build minimal minimal="minimal-${architecture}" @@ -176,8 +176,8 @@ else cd ${BASE_DIR}/${architecture} tar -C parts -c . | docker import - ${minimal} docker container rm -f ${ubase} - [[ ${branch} != master ]] && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch} || \ - (docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest; docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${branch}) + [[ ${BRANCH} != master ]] && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH} || \ + (docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest; docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH}) fi ;; *) From e644953647499880f5183c6b54aa31894ee841b4 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 18:31:02 +0100 Subject: [PATCH 22/25] make TIMEZONE env --- contrib/docker/Dockerfile.ubase-base | 5 +++-- contrib/docker/build.sh | 16 ++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/contrib/docker/Dockerfile.ubase-base b/contrib/docker/Dockerfile.ubase-base index 66cbc4b60..0f227a873 100755 --- a/contrib/docker/Dockerfile.ubase-base +++ b/contrib/docker/Dockerfile.ubase-base @@ -1,7 +1,8 @@ FROM ubuntu AS ubase ARG BRANCH=master -ENV BRANCH=BRANCH -ENV TZ=America/Los_Angeles +ENV BRANCH=$BRANCH +ARG TIMEZONE=America/Los_Angeles +ENV TZ=$TIMEZONE RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN apt-get update && apt-get install -yqq \ git \ diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 6247afe62..21edac6ba 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -8,7 +8,7 @@ Alist="\n " usage="Usage: \n -\t option mode: \t \`build.sh -o \` \n +\t option mode: \t \`build.sh -o \` \n \t interactive: \t \`build.sh -i\` \n \t \t \t help: \t \`build.sh -h\` \n \n Architectures: ${Alist} \n @@ -19,7 +19,7 @@ h2=" \t \t Enter your Docker Hub Account name." h3=" \t \t \t Enter \"github\" or \"gitlab\"." h4=" \t Enter the git account name. (eg. \"CoinBlack\" on GitHub, or \"blackcoin\" on GitLab)" h5=" \t \t \t Enter the BRANCH name. (eg. master)" -h6=" \t \t Enter your timezone. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)" +h6=" \t \t Enter your timezone. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)" help=" \n \t The defaults in interactive mode, written in for option mode: \n @@ -55,11 +55,11 @@ if [[ $1 == -i ]]; then read -p "Github or Gitlab? ($defaultHubLab): " HubLab read -p "What is your GitAccount name? ($defaultRepo): " GitAccount read -p "What BRANCH/version? ($defaultBranch): " BRANCH - read -p "What is your timezone? (${defaultTimezone}): " timezone + read -p "What is your TIMEZONE? (${defaultTimezone}): " TIMEZONE echo "Architecture: ${architecture}" echo "DockerHub Account: ${DockerHub}" echo "Git Account: ${HubLab}.com/${GitAccount} ${BRANCH}" - echo "Timezone: ${timezone}" + echo "Timezone: ${TIMEZONE}" else echo "Option Mode!" echo "Architecture: $2" @@ -146,11 +146,11 @@ else BRANCH=${BRANCH:-${defaultBranch}} [[ ${BRANCH} != ${defaultBranch} ]] && sed -i "s|ENV BRANCH=v2.13.2.7|ENV BRANCH=${BRANCH}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${BRANCH}|" $0 - # timezone + # TIMEZONE - timezone=${timezone:-${defaultTimezone}} - [[ ${timezone} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubase && \ - sed -i "s|America/Los_Angeles|${timezone}|" ${BASE_DIR}/Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${timezone}|" $0 + TIMEZONE=${TIMEZONE:-${defaultTimezone}} + [[ ${TIMEZONE} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${TIMEZONE}|" ${BASE_DIR}/Dockerfile.ubase && \ + sed -i "s|America/Los_Angeles|${TIMEZONE}|" ${BASE_DIR}/Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${TIMEZONE}|" $0 # build ubase-base From 4bb08626b766397a62031ba95afc9024303f8857 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sat, 26 Dec 2020 20:04:11 +0100 Subject: [PATCH 23/25] add platform support --- contrib/docker/build.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 21edac6ba..6067107a7 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -108,16 +108,19 @@ else case $architecture in aarch64-linux-gnu) + platform="linux/arm64, linux/arm/v8" checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; arm-linux-gnueabihf) + platform="linux/arm/v7" checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 ;; x86_64-linux-gnu) + platform="linux/amd64" checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ || exit 1 @@ -128,6 +131,7 @@ else " fi + # DockerHub Account DockerHub=${DockerHub:-${defaultDockerHub}} @@ -160,21 +164,22 @@ else # build ubase ubase="ubase-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}" - docker build ${BASE_DIR}/${architecture} -t ${ubase} --network=host -f ${Dockerfile} + docker buildx ${BASE_DIR}/${architecture} --platform ${platform} -t ${ubase} --network=host -f ${Dockerfile} # build ubuntu ubuntu="ubuntu-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" - docker build -t ${ubuntu} - --network=host < ${Dockerfile} + docker buildx -t ${ubuntu} - --platform ${platform} --network=host < ${Dockerfile} [[ ${BRANCH} != master ]] && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH} || \ (docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest; docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH}) # build minimal minimal="minimal-${architecture}" + rm -fr ${ubase}:${architecture}/parts docker run -itd --network=host --name ${ubase} ${ubase} bash docker cp ${ubase}:${architecture}/parts ${BASE_DIR}/${architecture}/parts cd ${BASE_DIR}/${architecture} - tar -C parts -c . | docker import - ${minimal} + tar -C parts -c . | docker import --platform ${platform} - ${minimal} docker container rm -f ${ubase} [[ ${BRANCH} != master ]] && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH} || \ (docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest; docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH}) From ad13bb75d8ec76bf4f5af2e4dfd63cf6cd9a2c43 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sun, 27 Dec 2020 17:20:23 +0100 Subject: [PATCH 24/25] reorganize folders --- .../files}/Dockerfile.ubase-base | 0 .../info/Dockerfile.ubase-base.trashinfo | 3 + contrib/docker/.gitignore | 7 +++ .../Dockerfile.ubase-aarch64-linux-gnu | 54 +++++++++++++++++- .../Dockerfile.ubase-arm-linux-gnueabihf | 52 ++++++++++++++++- contrib/docker/build.sh | 56 +++++++++---------- .../Dockerfile.ubase-x86_64-linux-gnu | 52 ++++++++++++++++- 7 files changed, 190 insertions(+), 34 deletions(-) rename {contrib/docker => .Trash-1000/files}/Dockerfile.ubase-base (100%) create mode 100644 .Trash-1000/info/Dockerfile.ubase-base.trashinfo create mode 100644 contrib/docker/.gitignore diff --git a/contrib/docker/Dockerfile.ubase-base b/.Trash-1000/files/Dockerfile.ubase-base similarity index 100% rename from contrib/docker/Dockerfile.ubase-base rename to .Trash-1000/files/Dockerfile.ubase-base diff --git a/.Trash-1000/info/Dockerfile.ubase-base.trashinfo b/.Trash-1000/info/Dockerfile.ubase-base.trashinfo new file mode 100644 index 000000000..5e188f8b4 --- /dev/null +++ b/.Trash-1000/info/Dockerfile.ubase-base.trashinfo @@ -0,0 +1,3 @@ +[Trash Info] +Path=contrib/docker/Dockerfile.ubase-base +DeletionDate=2020-12-27T08:13:05 diff --git a/contrib/docker/.gitignore b/contrib/docker/.gitignore new file mode 100644 index 000000000..d3bead3f1 --- /dev/null +++ b/contrib/docker/.gitignore @@ -0,0 +1,7 @@ +aarch64-linux-gnu/aarch64-linux-gnu/* +aarch64-linux-gnu/parts/* +arm-linux-gnueabihf/arm-linux-gnueabihf/* +arm-linux-gnueabihf/parts/* +x86_64-linux-gnu/x86_64-linux-gnu/* +x86_64-linux-gnu/parts/* +depends*.*xz \ No newline at end of file diff --git a/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu b/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu index dbcf31e96..f46f56db0 100644 --- a/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu +++ b/contrib/docker/aarch64-linux-gnu/Dockerfile.ubase-aarch64-linux-gnu @@ -1,4 +1,56 @@ -FROM ubase-base AS ubase-aarch64-linux-gnu +FROM ubuntu AS ubase-base-aarch64-linux-gnu +ARG BRANCH +ENV BRANCH=$BRANCH +ARG TIMEZONE +ENV TIMEZONE=$TZ +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && apt-get install -yqq \ + git \ + make \ + file \ + autoconf \ + automake \ + libtool \ + libevent-dev \ + build-essential \ + autotools-dev \ + pkg-config \ + bsdmainutils \ + python3 \ + libevent-dev \ + libboost-all-dev \ + libminiupnpc-dev \ + libzmq3-dev \ + libssl-dev \ + gperf \ + wget \ +# blk commandline utility + jq \ + bc \ +# cross compile arm + g++-arm-linux-gnueabihf \ + binutils-arm-linux-gnueabihf \ +# cross compile aarch64 + g++-aarch64-linux-gnu \ + binutils-aarch64-linux-gnu \ +# cross compile macOS + curl \ + librsvg2-bin \ + libtiff-tools \ + bsdmainutils \ + cmake \ + imagemagick \ + libcap-dev \ + libz-dev \ + libbz2-dev \ + python3-setuptools \ + libtinfo5 + + +FROM ubase-base-aarch64-linux-gnu AS ubase-aarch64-linux-gnu + +RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git + COPY aarch64-linux-gnu ./aarch64-linux-gnu WORKDIR /blackcoin-more diff --git a/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf b/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf index 50c18de7f..0d552b450 100644 --- a/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf +++ b/contrib/docker/arm-linux-gnueabihf/Dockerfile.ubase-arm-linux-gnueabihf @@ -1,4 +1,54 @@ -FROM ubase-base AS ubase-arm-linux-gnueabihf +FROM ubuntu AS ubase-base-arm-linux-gnueabihf +ARG BRANCH +ENV BRANCH=$BRANCH +ARG TIMEZONE +ENV TIMEZONE=$TZ +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && apt-get install -yqq \ + git \ + make \ + file \ + autoconf \ + automake \ + libtool \ + libevent-dev \ + build-essential \ + autotools-dev \ + pkg-config \ + bsdmainutils \ + python3 \ + libevent-dev \ + libboost-all-dev \ + libminiupnpc-dev \ + libzmq3-dev \ + libssl-dev \ + gperf \ + wget \ +# blk commandline utility + jq \ + bc \ +# cross compile arm + g++-arm-linux-gnueabihf \ + binutils-arm-linux-gnueabihf \ +# cross compile aarch64 + g++-aarch64-linux-gnu \ + binutils-aarch64-linux-gnu \ +# cross compile macOS + curl \ + librsvg2-bin \ + libtiff-tools \ + bsdmainutils \ + cmake \ + imagemagick \ + libcap-dev \ + libz-dev \ + libbz2-dev \ + python3-setuptools \ + libtinfo5 + +FROM ubase-base-arm-linux-gnueabihf AS ubase-arm-linux-gnueabihf + +RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git COPY arm-linux-gnueabihf ./arm-linux-gnueabihf WORKDIR /blackcoin-more diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh index 6067107a7..95f816e06 100755 --- a/contrib/docker/build.sh +++ b/contrib/docker/build.sh @@ -61,11 +61,13 @@ if [[ $1 == -i ]]; then echo "Git Account: ${HubLab}.com/${GitAccount} ${BRANCH}" echo "Timezone: ${TIMEZONE}" else - echo "Option Mode!" - echo "Architecture: $2" - echo "DockerHub Account: $3" - echo "Git Account: https://${4}.com/${5} ${6}" - echo "Timezone: ${7}" + echo -e " + Option Mode! \n + Architecture: $2 + DockerHub Account: $3 + Git Account: https://${4}.com/${5} ${6} + Timezone: ${7} + " fi # Architecture @@ -82,24 +84,21 @@ else # Download Dependencies - if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz ]]; then + if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz && -f ${BASE_DIR}/${architecture}/${architecture}/bin/fc-cache ]]; then echo "Dependencies exist! Checking sha256sum!"; case $architecture in aarch64-linux-gnu) checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ - || exit 1 + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK!" || exit 1 ;; arm-linux-gnueabihf) checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ - || exit 1 + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK!" || exit 1 ;; x86_64-linux-gnu) checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null` - [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\ - || exit 1 + [[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK!" || exit 1 ;; esac else @@ -140,49 +139,44 @@ else # Git Account HubLab=${HubLab:-${defaultHubLab}} - [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|github|${HubLab}|" $0 + [[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" $0 GitAccount=${GitAccount:-${defaultRepo}} - [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|CoinBlack|$GitAccount|" $0 + [[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" $0 # BRANCH BRANCH=${BRANCH:-${defaultBranch}} - [[ ${BRANCH} != ${defaultBranch} ]] && sed -i "s|ENV BRANCH=v2.13.2.7|ENV BRANCH=${BRANCH}|" ${BASE_DIR}/Dockerfile.ubase && sed -i "s|v2.13.2.7|${BRANCH}|" $0 + [[ ${BRANCH} != ${defaultBranch} ]] && sed -i "s|v2.13.2.7|${BRANCH}|" $0 # TIMEZONE TIMEZONE=${TIMEZONE:-${defaultTimezone}} - [[ ${TIMEZONE} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${TIMEZONE}|" ${BASE_DIR}/Dockerfile.ubase && \ - sed -i "s|America/Los_Angeles|${TIMEZONE}|" ${BASE_DIR}/Dockerfile.ubuntu && sed -i "s|America/Los_Angeles|${TIMEZONE}|" $0 - - - # build ubase-base - Dockerfile="${BASE_DIR}/Dockerfile.ubase-base" - docker build -t ubase-base --build-arg BRANCH=${BRANCH} --network=host - < ${Dockerfile} + [[ ${TIMEZONE} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${TIMEZONE}|" $0 # build ubase ubase="ubase-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}" - docker buildx ${BASE_DIR}/${architecture} --platform ${platform} -t ${ubase} --network=host -f ${Dockerfile} + docker build --network=host ${BASE_DIR}/${architecture} -t ${ubase} --build-arg BRANCH=${BRANCH} --build-arg TIMEZONE=${TZ} -f ${Dockerfile} # build ubuntu ubuntu="ubuntu-${architecture}" Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}" - docker buildx -t ${ubuntu} - --platform ${platform} --network=host < ${Dockerfile} - [[ ${BRANCH} != master ]] && docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH} || \ - (docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest; docker image tag ${ubuntu} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH}) + docker build --network=host -t ${ubuntu}:${BRANCH} - < ${Dockerfile} + [[ ${BRANCH} != master ]] || docker image tag ${ubuntu}:${BRANCH} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest && \ + docker image tag ${ubuntu}:${BRANCH} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH} # build minimal minimal="minimal-${architecture}" - rm -fr ${ubase}:${architecture}/parts + rm -fr ${BASE_DIR}/${architecture}/parts docker run -itd --network=host --name ${ubase} ${ubase} bash - docker cp ${ubase}:${architecture}/parts ${BASE_DIR}/${architecture}/parts + docker cp ${ubase}:/${architecture}/parts ${BASE_DIR}/${architecture}/parts cd ${BASE_DIR}/${architecture} - tar -C parts -c . | docker import --platform ${platform} - ${minimal} + tar -C parts -c . | docker import - ${minimal}:${BRANCH} docker container rm -f ${ubase} - [[ ${BRANCH} != master ]] && docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH} || \ - (docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest; docker image tag ${minimal} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH}) + [[ ${BRANCH} != master ]] || docker image tag ${minimal}:${BRANCH} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest && \ + docker image tag ${minimal}:${BRANCH} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH} + fi ;; *) diff --git a/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu b/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu index 3986a62f9..2421bc3e5 100644 --- a/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu +++ b/contrib/docker/x86_64-linux-gnu/Dockerfile.ubase-x86_64-linux-gnu @@ -1,4 +1,54 @@ -FROM ubase-base AS ubase-x86_64-linux-gnu +FROM ubuntu AS ubase-base-x86_64-linux-gnu +ARG BRANCH +ENV BRANCH=$BRANCH +ARG TIMEZONE +ENV TIMEZONE=$TZ +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt-get update && apt-get install -yqq \ + git \ + make \ + file \ + autoconf \ + automake \ + libtool \ + libevent-dev \ + build-essential \ + autotools-dev \ + pkg-config \ + bsdmainutils \ + python3 \ + libevent-dev \ + libboost-all-dev \ + libminiupnpc-dev \ + libzmq3-dev \ + libssl-dev \ + gperf \ + wget \ +# blk commandline utility + jq \ + bc \ +# cross compile arm + g++-arm-linux-gnueabihf \ + binutils-arm-linux-gnueabihf \ +# cross compile aarch64 + g++-aarch64-linux-gnu \ + binutils-aarch64-linux-gnu \ +# cross compile macOS + curl \ + librsvg2-bin \ + libtiff-tools \ + bsdmainutils \ + cmake \ + imagemagick \ + libcap-dev \ + libz-dev \ + libbz2-dev \ + python3-setuptools \ + libtinfo5 + +FROM ubase-base-x86_64-linux-gnu AS ubase-x86_64-linux-gnu + +RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git COPY x86_64-linux-gnu ./x86_64-linux-gnu WORKDIR /blackcoin-more From 414105427b7fb92a6ea4cfa2dc50f907a013d707 Mon Sep 17 00:00:00 2001 From: danielclough Date: Sun, 27 Dec 2020 17:26:03 +0100 Subject: [PATCH 25/25] add Trash* --- .Trash-1000/files/Dockerfile.ubase-base | 53 --------- .../files/moreBuilder/Dockerfile.ubase | 101 ------------------ .../files/moreBuilder/Dockerfile.ubuntu | 32 ------ .Trash-1000/files/moreBuilder/README.md | 10 -- .Trash-1000/files/moreBuilder/build.sh | 91 ---------------- .../info/Dockerfile.ubase-base.trashinfo | 3 - .Trash-1000/info/moreBuilder.trashinfo | 3 - .gitignore | 3 +- 8 files changed, 2 insertions(+), 294 deletions(-) delete mode 100755 .Trash-1000/files/Dockerfile.ubase-base delete mode 100755 .Trash-1000/files/moreBuilder/Dockerfile.ubase delete mode 100755 .Trash-1000/files/moreBuilder/Dockerfile.ubuntu delete mode 100755 .Trash-1000/files/moreBuilder/README.md delete mode 100755 .Trash-1000/files/moreBuilder/build.sh delete mode 100644 .Trash-1000/info/Dockerfile.ubase-base.trashinfo delete mode 100644 .Trash-1000/info/moreBuilder.trashinfo diff --git a/.Trash-1000/files/Dockerfile.ubase-base b/.Trash-1000/files/Dockerfile.ubase-base deleted file mode 100755 index 0f227a873..000000000 --- a/.Trash-1000/files/Dockerfile.ubase-base +++ /dev/null @@ -1,53 +0,0 @@ -FROM ubuntu AS ubase -ARG BRANCH=master -ENV BRANCH=$BRANCH -ARG TIMEZONE=America/Los_Angeles -ENV TZ=$TIMEZONE -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN apt-get update && apt-get install -yqq \ - git \ - make \ - file \ - autoconf \ - automake \ - libtool \ - libevent-dev \ - build-essential \ - autotools-dev \ - pkg-config \ - bsdmainutils \ - python3 \ - libevent-dev \ - libboost-all-dev \ - libminiupnpc-dev \ - libzmq3-dev \ - libssl-dev \ - gperf \ - wget \ -# blk commandline utility - jq \ - bc \ -# cross compile arm - g++-arm-linux-gnueabihf \ - binutils-arm-linux-gnueabihf \ -# cross compile aarch64 - g++-aarch64-linux-gnu \ - binutils-aarch64-linux-gnu \ -# cross compile macOS - curl \ - librsvg2-bin \ - libtiff-tools \ - bsdmainutils \ - cmake \ - imagemagick \ - libcap-dev \ - libz-dev \ - libbz2-dev \ - python3-setuptools \ - libtinfo5 - -FROM ubase AS ubase-base - -RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git - - diff --git a/.Trash-1000/files/moreBuilder/Dockerfile.ubase b/.Trash-1000/files/moreBuilder/Dockerfile.ubase deleted file mode 100755 index fc29a5488..000000000 --- a/.Trash-1000/files/moreBuilder/Dockerfile.ubase +++ /dev/null @@ -1,101 +0,0 @@ -FROM ubuntu AS basebase -ENV BRANCH=master -ENV TZ=America/Los_Angeles -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN apt-get update && apt-get install -yqq \ - git \ - make \ - file \ - autoconf \ - automake \ - libtool \ - libevent-dev \ - build-essential \ - autotools-dev \ - pkg-config \ - bsdmainutils \ - python3 \ - libevent-dev \ - libboost-all-dev \ - libminiupnpc-dev \ - libzmq3-dev \ - libssl-dev \ - gperf \ - wget \ - jq \ - bc \ - g++-aarch64-linux-gnu \ - binutils-aarch64-linux-gnu - -RUN (wget http://distfiles.gentoo.org/distfiles/db-6.2.38.tar.gz && \ - tar -xvf db-6.2.38.tar.gz && \ - cd db-6.2.38/build_unix && \ - mkdir -p build && \ - BDB_PREFIX=$(pwd)/build && \ - ../dist/configure --disable-shared -disable-replication --enable-cxx --with-pic --prefix=$BDB_PREFIX --with-gui=no --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --disable-man && \ - make install - -# Build Blackcoin More for AMD64 - -FROM apt-install AS ubase-amd64 - -RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git && \ - cd blackcoin-more/ && ./autogen.sh && \ - ./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --disable-tests --disable-bench --enable-reduce-exports && \ - make -j4 && \ - cd src/ && \ - strip blackmore*) - -# Prepare for minimal package - -RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ - cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ - cp /blackcoin-more/contrib/blk /usr/local/bin/ -WORKDIR /parts -RUN cp --parents /usr/local/bin/blk ./ && \ - cp --parents /usr/local/bin/blackmored ./ && \ - for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ - cp --parents /usr/local/bin/blackmore-cli ./ && \ - for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ - cp /usr/bin/bc --parents ./ && \ - for i in `ldd /usr/bin/bc | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ - cp /usr/bin/jq --parents ./ && \ - for i in `ldd /usr/bin/jq | grep -v linux-vdso.so.1 | grep -v libjq.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done - - - -# Build Blackcoin More - -FROM apt-install AS ubase-aarch64 - -RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git -RUN (wget http://distfiles.gentoo.org/distfiles/db-6.2.38.tar.gz && \ - tar -xvf db-6.2.38.tar.gz && \ - cd db-6.2.38/build_unix && \ - cd depends && \ - make HOST=aarch64-linux-gnu -j4 && \ - cd .. && \ - ./autogen.sh && \ - ./configure --prefix=$PWD/depends/aarch64-linux-gnu --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768" && \ - make -j4 && \ - make install && \ - cd src/ && \ - strip blackmore*) - -# Prepare for minimal package - -RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \ - cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \ - cp /blackcoin-more/contrib/blk /usr/local/bin/ -WORKDIR /parts -RUN cp --parents /usr/local/bin/blk ./ && \ - cp --parents /usr/local/bin/blackmored ./ && \ - for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ - cp --parents /usr/local/bin/blackmore-cli ./ && \ - for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ - cp /usr/bin/bc --parents ./ && \ - for i in `ldd /usr/bin/bc | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \ - cp /usr/bin/jq --parents ./ && \ - for i in `ldd /usr/bin/jq | grep -v linux-vdso.so.1 | grep -v libjq.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done - - diff --git a/.Trash-1000/files/moreBuilder/Dockerfile.ubuntu b/.Trash-1000/files/moreBuilder/Dockerfile.ubuntu deleted file mode 100755 index 29a948104..000000000 --- a/.Trash-1000/files/moreBuilder/Dockerfile.ubuntu +++ /dev/null @@ -1,32 +0,0 @@ -FROM blackcoinnl/blackmore-ubase-x86_64:master as build - -RUN echo "Building Ubuntu Package" - -# -# Collect dependencies -# - -FROM ubuntu -ENV TZ=America/Los_Angeles -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN apt-get update && \ - apt-get -yqq upgrade && \ - apt-get -yqq install \ - libboost-all-dev \ - libzmq3-dev \ - libminiupnpc-dev - -# -# Copy the binaries from the build to our new container -# -COPY --from=build /blackcoin-more/src/blackmored /usr/local/bin -COPY --from=build /blackcoin-more/src/blackmore-cli /usr/local/bin -COPY --from=build /usr/bin/bc /usr/bin -COPY --from=build /usr/bin/jq /usr/bin - - -# -# Expose the port for the RPC interface -# - -EXPOSE 15714/tcp diff --git a/.Trash-1000/files/moreBuilder/README.md b/.Trash-1000/files/moreBuilder/README.md deleted file mode 100755 index 09c603f08..000000000 --- a/.Trash-1000/files/moreBuilder/README.md +++ /dev/null @@ -1,10 +0,0 @@ -## To Build - -#### Log in to [Docker Hub](https://hub.docker.com). - -`docker login` - -#### Build - -`moreBuilder/build.sh` - diff --git a/.Trash-1000/files/moreBuilder/build.sh b/.Trash-1000/files/moreBuilder/build.sh deleted file mode 100755 index 9a0c7db79..000000000 --- a/.Trash-1000/files/moreBuilder/build.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash - -BASE_DIR=$(dirname $(realpath $0 )) -moreBuilder=${BASE_DIR}/moreBuilder -SYSTYPE=`lscpu | head -1 | tr -s ' ' | cut -d ' ' -f2` - -# DockerHub Account - -defaultDockerHub=blackcoinnl -read -p "What is your DockerHub Account Name? (default $defaultDockerHub): " DockerHub -DockerHub=${DockerHub:-${defaultDockerHub}} -if [ $DockerHub != $defaultDockerHub ]; then - sed -i "s/defaultDockerHub=blackcoinnl/defaultDockerHub=$DockerHub/" $0 -fi - -# Git Account - -defaultHubLab=github -read -p "Github or Gitlab? (default $defaultHubLab): " HubLab -HubLab=${HubLab:-${defaultHubLab}} -if [ $HubLab != $defaultHubLab ]; then - sed -i "s|defaultHubLab=github|defaultGit=$HubLab|" $0 - sed -i "s|github|$HubLab|" ${BASE_DIR}/Dockerfile.ubase -fi - -defaultGit=CoinBlack -read -p "What is your Git account? (default $defaultGit): " Git -Git=${Git:-${defaultGit}} -if [ $Git != $defaultGit ]; then - sed -i "s|defaultGit=CoinBlack|defaultGit=$Git|" $0 - sed -i "s|CoinBlack|$Git|" ${BASE_DIR}/Dockerfile.ubase -fi - -# Git Branch - -read -p "What branch/version? (default $defaultBranch): " BRANCH -defaultBranch=master -BRANCH=${BRANCH:-${defaultBranch}} -if [ $BRANCH != $defaultBranch ]; then - sed -i "s|defaultBranch=master|defaultBranch=$BRANCH|" $0 - sed -i "s|ENV BRANCH=v2.13.2.7|ENV BRANCH=$BRANCH|" ${BASE_DIR}/Dockerfile.ubase -fi - -# change branch for multi-stage build -defaultUbase=blackcoinnl/blackmore-ubase-x86_64:master -ubase="${DockerHub}/blackmore-ubase-$SYSTYPE:$BRANCH" -if [ $defaultUbase != $ubase ]; then - sed -i "s|FROM $defaultUbase as build|FROM $ubase as build|" ${BASE_DIR}/Dockerfile.ubuntu - sed -i "s|defaultUbase=blackcoinnl/blackmore-ubase-x86_64:master|defaultUbase=$ubase|" $0 -fi - -# timezone -defaultTimezone=America/Los_Angeles -read -p "What is your timezone? (default $defaultTimezone): " timezone -timezone=${timezone:-${defaultTimezone}} -if [ $timezone != $defaultTimezone ]; then - sed -i "s|defaultTimezone=America/Los_Angeles|defaultTimezone=$timezone|" $0 - sed -i "s|defaultTimezone=America/Los_Angeles|$timezone|" ${BASE_DIR}/Dockerfile.ubase - sed -i "s|defaultTimezone=America/Los_Angeles|$timezone|" ${BASE_DIR}/Dockerfile.ubuntu -fi - - -echo "DockerHub Account: ${DockerHub}" -echo "Git Account: $Git" -echo $BRANCH -echo $SYSTYPE -echo $timezone - - - - -minimal="${DockerHub}/blackcoin-more-minimal-$SYSTYPE:$BRANCH" -ubuntu="${DockerHub}/blackcoin-more-ubuntu-$SYSTYPE:$BRANCH" -ubase="${DockerHub}/blackmore-ubase-$SYSTYPE:$BRANCH" - -# build - -docker build -t $ubase - --network=host < ${BASE_DIR}/Dockerfile.ubase - -docker run -itd --network=host --name ubase $ubase bash - -docker cp ubase:/parts $moreBuilder -cd $moreBuilder -tar -C parts -c . | docker import - $minimal - -docker container rm -f ubase - -# push to docker hub - -docker image push $minimal -docker image push $ubuntu \ No newline at end of file diff --git a/.Trash-1000/info/Dockerfile.ubase-base.trashinfo b/.Trash-1000/info/Dockerfile.ubase-base.trashinfo deleted file mode 100644 index 5e188f8b4..000000000 --- a/.Trash-1000/info/Dockerfile.ubase-base.trashinfo +++ /dev/null @@ -1,3 +0,0 @@ -[Trash Info] -Path=contrib/docker/Dockerfile.ubase-base -DeletionDate=2020-12-27T08:13:05 diff --git a/.Trash-1000/info/moreBuilder.trashinfo b/.Trash-1000/info/moreBuilder.trashinfo deleted file mode 100644 index 3f2c3d51f..000000000 --- a/.Trash-1000/info/moreBuilder.trashinfo +++ /dev/null @@ -1,3 +0,0 @@ -[Trash Info] -Path=contrib/docker/moreBuilder -DeletionDate=2020-12-26T06:00:23 diff --git a/.gitignore b/.gitignore index 59c923bbe..fea0169e0 100644 --- a/.gitignore +++ b/.gitignore @@ -141,4 +141,5 @@ contrib/devtools/split-debug.sh osx_volname dist/ -*.background.tiff \ No newline at end of file +*.background.tiff +.Trash*