dockerfiles: add binary zcashd base container

This commit is contained in:
George Tankersley 2019-09-06 17:59:27 -04:00
commit 49ed9947e7
3 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,35 @@
FROM debian:buster-slim
RUN apt-get update && apt-get install -y -q curl
RUN adduser --uid 1000 --system zcash && \
mkdir -p /home/zcash/.zcash/ && \
mkdir -p /home/zcash/.zcash-params/ && \
chown -R zcash /home/zcash && \
echo "Initialized user 'zcash'"
COPY download-zcashd.sh /home/zcash/
COPY generate-config.sh /home/zcash/
USER zcash
WORKDIR /home/zcash/
ENV FILENAME "zcash-2.0.7-2-linux64-debian-stretch.tar.gz"
ENV EXPECTED_HASH "597d169606ed2d1b621d80f39c06291ff01d57cae8f178c0d6e90df1a27405ed"
# This should fail if the hash does not match the expected hash.
RUN ./download-zcashd.sh
# Create a zcash.conf for testnet with random RPC credentials
RUN ./generate-config.sh
RUN mv ./zcash.conf /home/zcash/.zcash/
# Extract the tarball.
RUN tar xvf $FILENAME
# Change this for each new version.
WORKDIR ./zcash-2.0.7-2
VOLUME [/home/zcash/.zcash]
VOLUME [/home/zcash/.zcash-params]

View File

@ -0,0 +1,34 @@
#!/bin/bash
set -euxo pipefail
WORKDIR=`pwd`
function download_zcashd {
EXPECTED_HASH=${EXPECTED_HASH:-"597d169606ed2d1b621d80f39c06291ff01d57cae8f178c0d6e90df1a27405ed"}
FILENAME=${FILENAME:-"zcash-2.0.7-2-linux64-debian-stretch.tar.gz"}
#BASE_URL_ZCASH="https://z.cash/downloads"
BASE_URL_MIRROR="https://storage.googleapis.com/zcashd-release-mirror/zcash-2.0.7-2"
DOWNLOAD_DIR=`mktemp -d`
cd ${DOWNLOAD_DIR}
curl -OL ${BASE_URL_MIRROR}/${FILENAME}
cat <<- EOF > ${DOWNLOAD_DIR}/SHA256SUMS
${EXPECTED_HASH} ${FILENAME}
EOF
if sha256sum -c ${DOWNLOAD_DIR}/SHA256SUMS; then
echo "DOWNLOAD OK"
cp ${FILENAME} ${WORKDIR}/
rm -rf ${DOWNLOAD_DIR}
return
fi
echo "DOWNLOAD SAYS NOPE"
rm -rf ${DOWNLOAD_DIR}
exit 1
}
download_zcashd

View File

@ -0,0 +1,19 @@
#!/bin/bash
set -euxo pipefail
WORKDIR=`pwd`
function generate_config {
RPC_USER=$(head -c 32 /dev/urandom | base64)
RPC_PASS=$(head -c 32 /dev/urandom | base64)
cat <<- EOF > ${WORKDIR}/zcash.conf
testnet=1
addnode=testnet.z.cash
rpcport=8232
rpcuser=${RPC_USER}
rpcpassword=${RPC_PASS}
EOF
}
generate_config