Added basic docker images
This commit is contained in:
parent
726388b16c
commit
d386cfb01a
|
@ -0,0 +1 @@
|
|||
*.env
|
17
README.md
17
README.md
|
@ -1 +1,18 @@
|
|||
# docker-builds
|
||||
|
||||
## Buildbot docker files for Kubernetes workers
|
||||
|
||||
[Debian 8](./bb-worker-debian8)
|
||||
[Debian 9](./bb-worker-debian9)
|
||||
[Debian 10](./bb-worker-debian10)
|
||||
[Ubuntu 16.04](./bb-worker-ubuntu1604)
|
||||
[Ubuntu 18.04](./bb-worker-ubuntu1804)
|
||||
[Ubuntu 19.04](./bb-worker-ubuntu1904)
|
||||
|
||||
## Zcashd for general usage
|
||||
|
||||
[Zcashd (Debian9)](./zcashd)
|
||||
|
||||
## Zcash Blockchain explorer
|
||||
|
||||
[zcash-insight-explorer (Debian 9)](./zcash-insight-explorer)
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
FROM debian:10
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
cmake \
|
||||
pkg-config \
|
||||
curl \
|
||||
git \
|
||||
wget \
|
||||
python-dev \
|
||||
python-pip \
|
||||
libtool \
|
||||
lcov \
|
||||
valgrind \
|
||||
dumb-init \
|
||||
bsdmainutils \
|
||||
python-requests \
|
||||
&& pip install \
|
||||
virtualenv \
|
||||
pyblake2 \
|
||||
pip
|
||||
|
||||
# Buildbot user
|
||||
ARG BUILDBOT_USER=zcbbworker
|
||||
ARG BUILDBOT_UID=2001
|
||||
RUN useradd --home-dir /home/$BUILDBOT_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $BUILDBOT_UID\
|
||||
$BUILDBOT_USER
|
||||
|
||||
USER $BUILDBOT_USER
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
|
||||
RUN /usr/local/bin/virtualenv venv \
|
||||
&& . venv/bin/activate \
|
||||
&& pip install \
|
||||
buildbot-worker \
|
||||
pyflakes \
|
||||
pyblake2 \
|
||||
pyzmq \
|
||||
twisted[tls]
|
||||
|
||||
# Buildbot worker
|
||||
ARG BUILDBOT_WORKER_NAME=debian8-docker
|
||||
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
|
||||
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
|
||||
ARG BUILDBOT_MASTER_PORT=9899
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
|
||||
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
|
||||
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
|
||||
&& echo "OS: Debian 10" > $BUILDBOT_WORKER_NAME/info/host
|
||||
ADD buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
|
||||
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]
|
|
@ -0,0 +1,40 @@
|
|||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from twisted.application import service
|
||||
from twisted.python.log import FileLogObserver
|
||||
from twisted.python.log import ILogObserver
|
||||
|
||||
from buildbot_worker.bot import Worker
|
||||
|
||||
# setup worker
|
||||
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||
os.path.abspath(os.path.dirname(__file__)))
|
||||
application = service.Application('buildbot-worker')
|
||||
|
||||
|
||||
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||
# and worker on the same process!
|
||||
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||
workername = os.environ.get("WORKERNAME", 'docker')
|
||||
passwd = os.environ.get("WORKERPASS")
|
||||
|
||||
# delete the password from the environ so that it is not leaked in the log
|
||||
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||
for name in list(os.environ.keys()):
|
||||
for toremove in blacklist:
|
||||
if fnmatch.fnmatch(name, toremove):
|
||||
del os.environ[name]
|
||||
|
||||
keepalive = 600
|
||||
umask = None
|
||||
maxdelay = 300
|
||||
allow_shutdown = None
|
||||
maxretries = 10
|
||||
|
||||
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||
keepalive, umask=umask, maxdelay=maxdelay,
|
||||
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||
s.setServiceParent(application)
|
|
@ -0,0 +1,63 @@
|
|||
FROM debian:8
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DUMBINIT_VERSION=v1.2.2
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
cmake \
|
||||
pkg-config \
|
||||
curl \
|
||||
git \
|
||||
wget \
|
||||
python-dev \
|
||||
python-pip \
|
||||
libtool \
|
||||
lcov \
|
||||
valgrind \
|
||||
bsdmainutils \
|
||||
python-requests \
|
||||
&& pip install \
|
||||
virtualenv \
|
||||
pyblake2 \
|
||||
pip
|
||||
|
||||
RUN wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64
|
||||
RUN chmod +x /usr/bin/dumb-init
|
||||
|
||||
# Buildbot user
|
||||
ARG BUILDBOT_USER=zcbbworker
|
||||
ARG BUILDBOT_UID=2001
|
||||
RUN useradd --home-dir /home/$BUILDBOT_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $BUILDBOT_UID\
|
||||
$BUILDBOT_USER
|
||||
|
||||
USER $BUILDBOT_USER
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
|
||||
RUN /usr/local/bin/virtualenv venv \
|
||||
&& . venv/bin/activate \
|
||||
&& pip install \
|
||||
buildbot-worker \
|
||||
pyflakes \
|
||||
pyblake2 \
|
||||
pyzmq \
|
||||
twisted[tls]
|
||||
|
||||
# Buildbot worker
|
||||
ARG BUILDBOT_WORKER_NAME=debian8-docker
|
||||
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
|
||||
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
|
||||
ARG BUILDBOT_MASTER_PORT=9899
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
|
||||
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
|
||||
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
|
||||
&& echo "OS: Debian 8" > $BUILDBOT_WORKER_NAME/info/host
|
||||
ADD buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
|
||||
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]
|
|
@ -0,0 +1,40 @@
|
|||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from twisted.application import service
|
||||
from twisted.python.log import FileLogObserver
|
||||
from twisted.python.log import ILogObserver
|
||||
|
||||
from buildbot_worker.bot import Worker
|
||||
|
||||
# setup worker
|
||||
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||
os.path.abspath(os.path.dirname(__file__)))
|
||||
application = service.Application('buildbot-worker')
|
||||
|
||||
|
||||
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||
# and worker on the same process!
|
||||
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||
workername = os.environ.get("WORKERNAME", 'docker')
|
||||
passwd = os.environ.get("WORKERPASS")
|
||||
|
||||
# delete the password from the environ so that it is not leaked in the log
|
||||
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||
for name in list(os.environ.keys()):
|
||||
for toremove in blacklist:
|
||||
if fnmatch.fnmatch(name, toremove):
|
||||
del os.environ[name]
|
||||
|
||||
keepalive = 600
|
||||
umask = None
|
||||
maxdelay = 300
|
||||
allow_shutdown = None
|
||||
maxretries = 10
|
||||
|
||||
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||
keepalive, umask=umask, maxdelay=maxdelay,
|
||||
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||
s.setServiceParent(application)
|
|
@ -0,0 +1,61 @@
|
|||
FROM debian:9
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
cmake \
|
||||
pkg-config \
|
||||
curl \
|
||||
git \
|
||||
wget \
|
||||
python-dev \
|
||||
python-pip \
|
||||
libtool \
|
||||
lcov \
|
||||
valgrind \
|
||||
dumb-init \
|
||||
bsdmainutils \
|
||||
python-requests \
|
||||
&& pip install \
|
||||
virtualenv \
|
||||
pyblake2 \
|
||||
pip
|
||||
|
||||
# Buildbot user
|
||||
ARG BUILDBOT_USER=zcbbworker
|
||||
ARG BUILDBOT_UID=2001
|
||||
RUN useradd --home-dir /home/$BUILDBOT_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $BUILDBOT_UID\
|
||||
$BUILDBOT_USER
|
||||
|
||||
USER $BUILDBOT_USER
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
|
||||
RUN /usr/local/bin/virtualenv venv \
|
||||
&& . venv/bin/activate \
|
||||
&& pip install \
|
||||
buildbot-worker \
|
||||
pyflakes \
|
||||
pyblake2 \
|
||||
pyzmq \
|
||||
twisted[tls]
|
||||
|
||||
# Buildbot worker
|
||||
ARG BUILDBOT_WORKER_NAME=debian8-docker
|
||||
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
|
||||
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
|
||||
ARG BUILDBOT_MASTER_PORT=9899
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
|
||||
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
|
||||
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
|
||||
&& echo "OS: Debian 9" > $BUILDBOT_WORKER_NAME/info/host
|
||||
ADD buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
|
||||
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]
|
|
@ -0,0 +1,40 @@
|
|||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from twisted.application import service
|
||||
from twisted.python.log import FileLogObserver
|
||||
from twisted.python.log import ILogObserver
|
||||
|
||||
from buildbot_worker.bot import Worker
|
||||
|
||||
# setup worker
|
||||
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||
os.path.abspath(os.path.dirname(__file__)))
|
||||
application = service.Application('buildbot-worker')
|
||||
|
||||
|
||||
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||
# and worker on the same process!
|
||||
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||
workername = os.environ.get("WORKERNAME", 'docker')
|
||||
passwd = os.environ.get("WORKERPASS")
|
||||
|
||||
# delete the password from the environ so that it is not leaked in the log
|
||||
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||
for name in list(os.environ.keys()):
|
||||
for toremove in blacklist:
|
||||
if fnmatch.fnmatch(name, toremove):
|
||||
del os.environ[name]
|
||||
|
||||
keepalive = 600
|
||||
umask = None
|
||||
maxdelay = 300
|
||||
allow_shutdown = None
|
||||
maxretries = 10
|
||||
|
||||
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||
keepalive, umask=umask, maxdelay=maxdelay,
|
||||
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||
s.setServiceParent(application)
|
|
@ -0,0 +1,63 @@
|
|||
FROM ubuntu:16.04
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
cmake \
|
||||
pkg-config \
|
||||
curl \
|
||||
git \
|
||||
wget \
|
||||
python-dev \
|
||||
python-pip \
|
||||
libtool \
|
||||
lcov \
|
||||
valgrind \
|
||||
bsdmainutils \
|
||||
python-requests \
|
||||
&& pip install \
|
||||
virtualenv \
|
||||
pyblake2 \
|
||||
pip
|
||||
|
||||
RUN wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64
|
||||
RUN chmod +x /usr/bin/dumb-init
|
||||
|
||||
# Buildbot user
|
||||
ARG BUILDBOT_USER=zcbbworker
|
||||
ARG BUILDBOT_UID=2001
|
||||
RUN useradd --home-dir /home/$BUILDBOT_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $BUILDBOT_UID\
|
||||
$BUILDBOT_USER
|
||||
|
||||
USER $BUILDBOT_USER
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
|
||||
RUN /usr/local/bin/virtualenv venv \
|
||||
&& . venv/bin/activate \
|
||||
&& pip install \
|
||||
buildbot-worker \
|
||||
pyflakes \
|
||||
pyblake2 \
|
||||
pyzmq \
|
||||
twisted[tls]
|
||||
|
||||
# Buildbot worker
|
||||
ARG BUILDBOT_WORKER_NAME=ubuntu16.04-docker
|
||||
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
|
||||
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
|
||||
ARG BUILDBOT_MASTER_PORT=9899
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
|
||||
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
|
||||
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
|
||||
&& echo "OS: Ubuntu 16.04" > $BUILDBOT_WORKER_NAME/info/host
|
||||
ADD buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
|
||||
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]
|
|
@ -0,0 +1,40 @@
|
|||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from twisted.application import service
|
||||
from twisted.python.log import FileLogObserver
|
||||
from twisted.python.log import ILogObserver
|
||||
|
||||
from buildbot_worker.bot import Worker
|
||||
|
||||
# setup worker
|
||||
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||
os.path.abspath(os.path.dirname(__file__)))
|
||||
application = service.Application('buildbot-worker')
|
||||
|
||||
|
||||
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||
# and worker on the same process!
|
||||
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||
workername = os.environ.get("WORKERNAME", 'docker')
|
||||
passwd = os.environ.get("WORKERPASS")
|
||||
|
||||
# delete the password from the environ so that it is not leaked in the log
|
||||
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||
for name in list(os.environ.keys()):
|
||||
for toremove in blacklist:
|
||||
if fnmatch.fnmatch(name, toremove):
|
||||
del os.environ[name]
|
||||
|
||||
keepalive = 600
|
||||
umask = None
|
||||
maxdelay = 300
|
||||
allow_shutdown = None
|
||||
maxretries = 10
|
||||
|
||||
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||
keepalive, umask=umask, maxdelay=maxdelay,
|
||||
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||
s.setServiceParent(application)
|
|
@ -0,0 +1,61 @@
|
|||
FROM ubuntu:18.04
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
cmake \
|
||||
pkg-config \
|
||||
curl \
|
||||
git \
|
||||
wget \
|
||||
python-dev \
|
||||
python-pip \
|
||||
libtool \
|
||||
lcov \
|
||||
valgrind \
|
||||
dumb-init \
|
||||
bsdmainutils \
|
||||
python-requests \
|
||||
&& pip install \
|
||||
virtualenv \
|
||||
pyblake2 \
|
||||
pip
|
||||
|
||||
# Buildbot user
|
||||
ARG BUILDBOT_USER=zcbbworker
|
||||
ARG BUILDBOT_UID=2001
|
||||
RUN useradd --home-dir /home/$BUILDBOT_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $BUILDBOT_UID\
|
||||
$BUILDBOT_USER
|
||||
|
||||
USER $BUILDBOT_USER
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
|
||||
RUN /usr/local/bin/virtualenv venv \
|
||||
&& . venv/bin/activate \
|
||||
&& pip install \
|
||||
buildbot-worker \
|
||||
pyflakes \
|
||||
pyblake2 \
|
||||
pyzmq \
|
||||
twisted[tls]
|
||||
|
||||
# Buildbot worker
|
||||
ARG BUILDBOT_WORKER_NAME=ubuntu18.04-docker
|
||||
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
|
||||
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
|
||||
ARG BUILDBOT_MASTER_PORT=9899
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
|
||||
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
|
||||
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
|
||||
&& echo "OS: Ubuntu 18.04" > $BUILDBOT_WORKER_NAME/info/host
|
||||
ADD buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
|
||||
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]
|
|
@ -0,0 +1,40 @@
|
|||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from twisted.application import service
|
||||
from twisted.python.log import FileLogObserver
|
||||
from twisted.python.log import ILogObserver
|
||||
|
||||
from buildbot_worker.bot import Worker
|
||||
|
||||
# setup worker
|
||||
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||
os.path.abspath(os.path.dirname(__file__)))
|
||||
application = service.Application('buildbot-worker')
|
||||
|
||||
|
||||
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||
# and worker on the same process!
|
||||
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||
workername = os.environ.get("WORKERNAME", 'docker')
|
||||
passwd = os.environ.get("WORKERPASS")
|
||||
|
||||
# delete the password from the environ so that it is not leaked in the log
|
||||
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||
for name in list(os.environ.keys()):
|
||||
for toremove in blacklist:
|
||||
if fnmatch.fnmatch(name, toremove):
|
||||
del os.environ[name]
|
||||
|
||||
keepalive = 600
|
||||
umask = None
|
||||
maxdelay = 300
|
||||
allow_shutdown = None
|
||||
maxretries = 10
|
||||
|
||||
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||
keepalive, umask=umask, maxdelay=maxdelay,
|
||||
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||
s.setServiceParent(application)
|
|
@ -0,0 +1,61 @@
|
|||
FROM ubuntu:19.04
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
autoconf \
|
||||
cmake \
|
||||
pkg-config \
|
||||
curl \
|
||||
git \
|
||||
wget \
|
||||
python-dev \
|
||||
python-pip \
|
||||
libtool \
|
||||
lcov \
|
||||
valgrind \
|
||||
dumb-init \
|
||||
bsdmainutils \
|
||||
python-requests \
|
||||
&& pip install \
|
||||
virtualenv \
|
||||
pyblake2 \
|
||||
pip
|
||||
|
||||
# Buildbot user
|
||||
ARG BUILDBOT_USER=zcbbworker
|
||||
ARG BUILDBOT_UID=2001
|
||||
RUN useradd --home-dir /home/$BUILDBOT_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $BUILDBOT_UID\
|
||||
$BUILDBOT_USER
|
||||
|
||||
USER $BUILDBOT_USER
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
|
||||
RUN /usr/local/bin/virtualenv venv \
|
||||
&& . venv/bin/activate \
|
||||
&& pip install \
|
||||
buildbot-worker \
|
||||
pyflakes \
|
||||
pyblake2 \
|
||||
pyzmq \
|
||||
twisted[tls]
|
||||
|
||||
# Buildbot worker
|
||||
ARG BUILDBOT_WORKER_NAME=ubuntu19.04-docker
|
||||
ARG BUILDBOT_WORKER_PASS=thisgetssetwhenpodisstarted
|
||||
ARG BUILDBOT_MASTER_HOST=dev-ci.z.cash
|
||||
ARG BUILDBOT_MASTER_PORT=9899
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER
|
||||
RUN venv/bin/buildbot-worker create-worker $BUILDBOT_WORKER_NAME \
|
||||
$BUILDBOT_MASTER_HOST:$BUILDBOT_MASTER_PORT \
|
||||
$BUILDBOT_WORKER_NAME $BUILDBOT_WORKER_PASS \
|
||||
&& echo "OS: Ubuntu 19.04" > $BUILDBOT_WORKER_NAME/info/host
|
||||
ADD buildbot.tac $BUILDBOT_WORKER_NAME/buildbot.tac
|
||||
|
||||
WORKDIR /home/$BUILDBOT_USER/$BUILDBOT_WORKER_NAME
|
||||
CMD ["/usr/bin/dumb-init", "../venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"]
|
|
@ -0,0 +1,40 @@
|
|||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from twisted.application import service
|
||||
from twisted.python.log import FileLogObserver
|
||||
from twisted.python.log import ILogObserver
|
||||
|
||||
from buildbot_worker.bot import Worker
|
||||
|
||||
# setup worker
|
||||
basedir = os.environ.get("BUILDBOT_BASEDIR",
|
||||
os.path.abspath(os.path.dirname(__file__)))
|
||||
application = service.Application('buildbot-worker')
|
||||
|
||||
|
||||
application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
|
||||
# and worker on the same process!
|
||||
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
|
||||
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
|
||||
workername = os.environ.get("WORKERNAME", 'docker')
|
||||
passwd = os.environ.get("WORKERPASS")
|
||||
|
||||
# delete the password from the environ so that it is not leaked in the log
|
||||
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
|
||||
for name in list(os.environ.keys()):
|
||||
for toremove in blacklist:
|
||||
if fnmatch.fnmatch(name, toremove):
|
||||
del os.environ[name]
|
||||
|
||||
keepalive = 600
|
||||
umask = None
|
||||
maxdelay = 300
|
||||
allow_shutdown = None
|
||||
maxretries = 10
|
||||
|
||||
s = Worker(buildmaster_host, port, workername, passwd, basedir,
|
||||
keepalive, umask=umask, maxdelay=maxdelay,
|
||||
allow_shutdown=allow_shutdown, maxRetries=maxretries)
|
||||
s.setServiceParent(application)
|
|
@ -0,0 +1,13 @@
|
|||
DOMAIN=example.com
|
||||
ZCASHD_NETWORK=testnet
|
||||
ZCASHD_LOGIPS=1
|
||||
ZCASHD_EXPERIMENTALFEATURES=1
|
||||
ZCASHD_GEN=0
|
||||
ZCASHD_RPCUSER=zcashrpc
|
||||
ZCASHD_RPCPASSWORD=notsecure
|
||||
ZCASHD_RPCBIND=0.0.0.0
|
||||
ZCASHD_ALLOWIP=0.0.0.0/0
|
||||
ZCASHD_TXINDEX=1
|
||||
ZCASHD_INSIGHTEXPLORER=1
|
||||
ZCASHD_ZMQPORT=9994
|
||||
ZCASHD_ZMQBIND=0.0.0.0
|
|
@ -0,0 +1,44 @@
|
|||
FROM debian:9
|
||||
# Run 'docker build -t zcash-insight-explorer:latest .' from github clone
|
||||
# docker run -p80:3001 -v $(pwd)/dot-zcash:/home/zcashd/.zcash zcash-insight-explorer
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y gnupg2 wget libzmq3-dev git \
|
||||
&& apt-get -qqy install \
|
||||
build-essential pkg-config libc6-dev m4 g++-multilib \
|
||||
autoconf libtool ncurses-dev unzip git python python-zmq \
|
||||
zlib1g-dev wget curl bsdmainutils automake gettext-base \
|
||||
\
|
||||
&& curl -sL https://deb.nodesource.com/setup_8.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
|
||||
ARG ZCASH_SIGNING_KEY_ID=6DEF3BAF272766C0
|
||||
ARG ZCASH_VERSION=2.0.7+2
|
||||
ARG ZCASHD_USER=zcashd
|
||||
ARG ZCASHD_UID=2001
|
||||
|
||||
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $ZCASH_SIGNING_KEY_ID \
|
||||
&& echo "deb [arch=amd64] https://apt.z.cash/ jessie main" > /etc/apt/sources.list.d/zcash.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y zcash=$ZCASH_VERSION
|
||||
|
||||
RUN useradd --home-dir /home/$ZCASHD_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $ZCASHD_UID\
|
||||
$ZCASHD_USER
|
||||
|
||||
USER $ZCASHD_USER
|
||||
WORKDIR /home/$ZCASHD_USER/
|
||||
RUN mkdir .npm-global .zcash .zcash-params
|
||||
|
||||
ENV PATH=/home/$ZCASHD_USER/.npm-global/bin:$PATH
|
||||
ENV NPM_CONFIG_PREFIX=/home/$ZCASHD_USER/.npm-global
|
||||
|
||||
RUN npm install -g npm@latest
|
||||
RUN npm -g install zcash-hackworks/bitcore-node-zcash
|
||||
|
||||
RUN bitcore-node create zc
|
||||
ADD bitcore-node.json.template bitcore-node.json.template
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"network": "$ZCASHD_NETWORK",
|
||||
"port": 3001,
|
||||
"services": [
|
||||
"bitcoind",
|
||||
"web"
|
||||
],
|
||||
"servicesConfig": {
|
||||
"bitcoind": {
|
||||
"connect": [
|
||||
{
|
||||
"rpchost": "zcashd",
|
||||
"rpcport": $ZCASHD_RPC_PORT,
|
||||
"rpcuser": "$ZCASHD_RPCUSER",
|
||||
"rpcpassword": "$ZCASHD_RPCPASSWORD",
|
||||
"zmqpubrawtx": "tcp://zcashd:$ZCASHD_ZMQPORT"
|
||||
}
|
||||
]
|
||||
},
|
||||
"insight-api-zcash": {
|
||||
"routePrefix": "api"
|
||||
},
|
||||
"insight-ui-zcash": {
|
||||
"apiPrefix": "api",
|
||||
"routePrefix": ""
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:v2.0
|
||||
command: |
|
||||
"--log.level=DEBUG"
|
||||
"--providers.docker=true"
|
||||
"--providers.docker.exposedbydefault=false"
|
||||
"--entryPoints.websecure.address=:443"
|
||||
"--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
|
||||
"--certificatesresolvers.mytlschallenge.acme.email=sysadmin@z.cash"
|
||||
"--certificatesresolvers.mytlschallenge.acme.storage=/etc/traefik/acme.json"
|
||||
"--certificatesresolvers.ecc.acme.tlschallenge=true"
|
||||
"--certificatesresolvers.ecc.acme.email=sysadmin@z.cash"
|
||||
"--certificatesresolvers.ecc.acme.storage=/etc/traefik/acme.json"
|
||||
ports:
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /srv/traefik/acme.json:/etc/traefik/acme.json
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
zcash-insight-explorer:
|
||||
build: .
|
||||
environment:
|
||||
- ZCASHD_NETWORK=$ZCASHD_NETWORK
|
||||
- ZCASHD_RPCUSER=$ZCASHD_RPCUSER
|
||||
- ZCASHD_RPCPASSWORD=$ZCASHD_RPCPASSWORD
|
||||
- ZCASHD_ZMQPORT=$ZCASHD_ZMQPORT
|
||||
ports:
|
||||
- "3001:3001"
|
||||
labels:
|
||||
"traefik.enable": "true"
|
||||
"traefik.http.routers.explorer.entrypoints": "websecure"
|
||||
"traefik.http.routers.explorer.rule": "Host(`explorer.$DOMAIN`)"
|
||||
"traefik.http.routers.explorer.tls.certresolver": "mytlschallenge"
|
||||
|
||||
zcashd:
|
||||
image: gcr.io/zcash-web/zcashd
|
||||
environment:
|
||||
- ZCASHD_NETWORK=$ZCASHD_NETWORK
|
||||
- ZCASHD_LOGIPS=$ZCASHD_LOGIPS
|
||||
- ZCASHD_EXPERIMENTALFEATURES=$ZCASHD_EXPERIMENTALFEATURES
|
||||
- ZCASHD_GEN=$ZCASHD_GEN
|
||||
- ZCASHD_RPCUSER=$ZCASHD_RPCUSER
|
||||
- ZCASHD_RPCPASSWORD=$ZCASHD_RPCPASSWORD
|
||||
- ZCASHD_RPCBIND=$ZCASHD_RPCBIND
|
||||
- ZCASHD_ALLOWIP=$ZCASHD_ALLOWIP
|
||||
- ZCASHD_TXINDEX=$ZCASHD_TXINDEX
|
||||
- ZCASHD_INSIGHTEXPLORER=$ZCASHD_INSIGHTEXPLORER
|
||||
- ZCASHD_ZMQPORT=$ZCASHD_ZMQPORT
|
||||
- ZCASHD_ZMQBIND=$ZCASHD_ZMQBIND
|
||||
volumes:
|
||||
- /srv/zcash-params:/srv/zcashd/.zcash-params
|
||||
- /srv/zcash-insight-explorer/.zcashd/zcash:/srv/zcashd/.zcash
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [[ ! -n ${ZCASHD_NETWORK} ]];then
|
||||
echo "ZCASHD_NETWORK must be set"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -n ${ZCASHD_RPCUSER} ]];then
|
||||
echo "ZCASHD_RPCUSER must be set"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -n ${ZCASHD_RPCPASSWORD} ]];then
|
||||
echo "ZCASHD_RPCPASSWORD must be set"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -n ${ZCASHD_ZMQPORT} ]];then
|
||||
echo "ZCASHD_ZMQPORT must be set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case ${ZCASHD_NETWORK} in
|
||||
testnet)
|
||||
export ZCASHD_RPC_PORT=18232
|
||||
;;
|
||||
mainnet)
|
||||
export ZCASHD_RPC_PORT=8232
|
||||
;;
|
||||
*)
|
||||
echo "Error, unknown network: ${ZCASHD_NETWORK}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
env | sort
|
||||
|
||||
envsubst < bitcore-node.json.template > zc/bitcore-node.json
|
||||
cd zc
|
||||
bitcore-node install zcash-hackworks/insight-api-zcash zcash-hackworks/insight-ui-zcash
|
||||
|
||||
if [[ $ZCASHD_NETWORK == 'testnet' ]];then
|
||||
sed -i 's/testnet = false/testnet = true/g' node_modules/insight-ui-zcash/public/src/js/app.js
|
||||
fi
|
||||
|
||||
node_modules/bitcore-node-zcash/bin/bitcore-node start
|
|
@ -0,0 +1,12 @@
|
|||
ZCASHD_NETWORK=testnet
|
||||
ZCASHD_LOGIPS=1
|
||||
ZCASHD_EXPERIMENTALFEATURES=1
|
||||
ZCASHD_GEN=0
|
||||
ZCASHD_RPCUSER=zcashrpc
|
||||
ZCASHD_RPCPASSWORD=notsecure
|
||||
ZCASHD_RPCBIND=0.0.0.0
|
||||
ZCASHD_ALLOWIP=0.0.0.0/0
|
||||
ZCASHD_TXINDEX=1
|
||||
ZCASHD_INSIGHTEXPLORER=1
|
||||
ZCASHD_ZMQPORT=9994
|
||||
ZCASHD_ZMQBIND=0.0.0.0
|
|
@ -0,0 +1,29 @@
|
|||
FROM debian:9
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y gnupg2 apt-transport-https curl
|
||||
|
||||
ARG ZCASH_SIGNING_KEY_ID=6DEF3BAF272766C0
|
||||
ARG ZCASH_VERSION=2.0.7+2
|
||||
ARG ZCASHD_USER=zcashd
|
||||
ARG ZCASHD_UID=2001
|
||||
|
||||
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $ZCASH_SIGNING_KEY_ID \
|
||||
&& echo "deb [arch=amd64] https://apt.z.cash/ jessie main" > /etc/apt/sources.list.d/zcash.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y zcash=$ZCASH_VERSION
|
||||
|
||||
RUN useradd --home-dir /srv/$ZCASHD_USER \
|
||||
--shell /bin/bash \
|
||||
--create-home \
|
||||
--uid $ZCASHD_UID\
|
||||
$ZCASHD_USER
|
||||
USER $ZCASHD_USER
|
||||
WORKDIR /srv/zcashd
|
||||
RUN mkdir -p /srv/$ZCASHD_USER/.zcash/ \
|
||||
&& touch /srv/$ZCASHD_USER/.zcash/zcash.conf
|
||||
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
HEALTHCHECK --interval=5m --timeout=3s \
|
||||
CMD zcash-cli getinfo || exit 1
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
init_container:
|
||||
image: busybox
|
||||
command: |
|
||||
sh -c "chown -R 2001 /srv/zcashd/"
|
||||
volumes:
|
||||
- zcash-params:/srv/zcashd/.zcash-params
|
||||
- zcash:/srv/zcashd/.zcash
|
||||
zcashd:
|
||||
image: gcr.io/zcash-web/zcashd
|
||||
environment:
|
||||
- ZCASHD_NETWORK=$ZCASHD_NETWORK
|
||||
- ZCASHD_LOGIPS=$ZCASHD_LOGIPS
|
||||
- ZCASHD_EXPERIMENTALFEATURES=$ZCASHD_EXPERIMENTALFEATURES
|
||||
- ZCASHD_GEN=$ZCASHD_GEN
|
||||
- ZCASHD_RPCUSER=$ZCASHD_RPCUSER
|
||||
- ZCASHD_RPCPASSWORD=$ZCASHD_RPCPASSWORD
|
||||
- ZCASHD_RPCBIND=$ZCASHD_RPCBIND
|
||||
- ZCASHD_ALLOWIP=$ZCASHD_ALLOWIP
|
||||
- ZCASHD_TXINDEX=$ZCASHD_TXINDEX
|
||||
- ZCASHD_INSIGHTEXPLORER=$ZCASHD_INSIGHTEXPLORER
|
||||
- ZCASHD_ZMQPORT=$ZCASHD_ZMQPORT
|
||||
- ZCASHD_ZMQBIND=$ZCASHD_ZMQBIND
|
||||
volumes:
|
||||
- zcash-params:/srv/zcashd/.zcash-params
|
||||
- zcash:/srv/zcashd/.zcash
|
||||
|
||||
volumes:
|
||||
zcash:
|
||||
zcash-params:
|
|
@ -0,0 +1,51 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
env | sort | grep ZCASHD || true
|
||||
|
||||
|
||||
export ZCASHD_CMD='zcashd -printtoconsole'
|
||||
|
||||
if [[ ! -n ${ZCASHD_NETWORK} ]];then
|
||||
echo "ZCASHD_NETWORK must be set"
|
||||
echo "For example: docker run --rm -e ZCASHD_NETWORK=testnet gcr.io/zcash-web/zcashd"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case ${ZCASHD_NETWORK} in
|
||||
testnet)
|
||||
ZCASHD_CMD+=" -testnet -addnode=testnet.z.cash "
|
||||
;;
|
||||
mainnet)
|
||||
ZCASHD_CMD+=" -addnode=mainnet.z.cash "
|
||||
;;
|
||||
*)
|
||||
echo "Error, unknown network: ${ZCASHD_NETWORK}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -n "${ZCASHD_SHOWMETRICS}" ]];then ZCASHD_CMD+=" -showmetrics=${ZCASHD_SHOWMETRICS}";fi
|
||||
if [[ -n "${ZCASHD_LOGIPS}" ]];then ZCASHD_CMD+=" -logips=${ZCASHD_LOGIPS}";fi
|
||||
if [[ -n "${ZCASHD_EXPERIMENTALFEATURES}" ]];then ZCASHD_CMD+=" -experimentalfeatures=${ZCASHD_EXPERIMENTALFEATURES}";fi
|
||||
if [[ -n "${ZCASHD_GEN}" ]];then ZCASHD_CMD+=" -gen=${ZCASHD_GEN}";fi
|
||||
if [[ -n "${ZCASHD_ZSHIELDCOINBASE}" ]];then ZCASHD_CMD+=" -zshieldcoinbase=${ZCASHD_ZSHIELDCOINBASE}";fi
|
||||
if [[ -n "${ZCASHD_RPCUSER}" ]];then ZCASHD_CMD+=" -rpcuser=${ZCASHD_RPCUSER}";fi
|
||||
if [[ -n "${ZCASHD_RPCPASSWORD}" ]];then ZCASHD_CMD+=" -rpcpassword=${ZCASHD_RPCPASSWORD}";fi
|
||||
if [[ -n "${ZCASHD_RPCBIND}" ]];then ZCASHD_CMD+=" -rpcbind=${ZCASHD_RPCBIND}";fi
|
||||
if [[ -n "${ZCASHD_ALLOWIP}" ]];then ZCASHD_CMD+=" -rpcallowip=${ZCASHD_ALLOWIP}";fi
|
||||
if [[ -n "${ZCASHD_TXINDEX}" ]];then ZCASHD_CMD+=" -txindex";fi
|
||||
if [[ -n "${ZCASHD_INSIGHTEXPLORER}" ]];then ZCASHD_CMD+=" -insightexplorer";fi
|
||||
if [[ -n "${ZCASHD_ZMQPORT}" && -n "${ZCASHD_ZMQBIND}" ]];then
|
||||
ZCASHD_CMD+=" -zmqpubhashblock=tcp://${ZCASHD_ZMQBIND}:${ZCASHD_ZMQPORT}"
|
||||
ZCASHD_CMD+=" -zmqpubhashtx=tcp://${ZCASHD_ZMQBIND}:${ZCASHD_ZMQPORT}"
|
||||
ZCASHD_CMD+=" -zmqpubrawblock=tcp://${ZCASHD_ZMQBIND}:${ZCASHD_ZMQPORT}"
|
||||
ZCASHD_CMD+=" -zmqpubrawtx=tcp://${ZCASHD_ZMQBIND}:${ZCASHD_ZMQPORT}"
|
||||
ZCASHD_CMD+=" -zmqpubhashblock=tcp://${ZCASHD_ZMQBIND}:${ZCASHD_ZMQPORT}"
|
||||
fi
|
||||
|
||||
zcash-fetch-params
|
||||
touch .zcash/zcash.conf
|
||||
echo "Starting: ${ZCASHD_CMD}"
|
||||
${ZCASHD_CMD}
|
Loading…
Reference in New Issue