74 lines
2.2 KiB
Docker
74 lines
2.2 KiB
Docker
# A container for PyBitmessage daemon
|
|
FROM ubuntu:bionic-20220401
|
|
|
|
SHELL ["/bin/bash", "-exo", "pipefail", "-c"]
|
|
|
|
RUN apt-get update
|
|
|
|
# Install dependencies
|
|
RUN apt-get install -yq --no-install-suggests --no-install-recommends \
|
|
build-essential libcap-dev libssl-dev \
|
|
python-all-dev python-msgpack python-pip python-setuptools \
|
|
git
|
|
|
|
WORKDIR /root
|
|
RUN git clone https://github.com/Bitmessage/PyBitmessage
|
|
|
|
WORKDIR /root/PyBitmessage
|
|
|
|
# Install
|
|
RUN pip2 install jsonrpclib .
|
|
|
|
FROM ubuntu:bionic-20220401
|
|
|
|
EXPOSE 8442
|
|
|
|
ENV BITMESSAGE_API_USER=bitmessage_api_user
|
|
ENV BITMESSAGE_API_PASSWORD=bitmessage_api_password
|
|
ENV BITMESSAGE_SEED_PHRASE=bitmessage_seed_phrase
|
|
ENV BITMESSAGE_SEED_ADDRESSES=1
|
|
ENV BITMESSAGE_API_PORT=8442
|
|
ENV BITMESSAGE_TTL=172800
|
|
ENV BITMESSAGE_STOPRESENDINGAFTERXDAYS=30
|
|
|
|
ENV USER_UID=2000
|
|
ENV USER_GID=2000
|
|
ENV HOME=/home/bitmessage
|
|
ENV BITMESSAGE_HOME=${HOME}
|
|
|
|
COPY --from=0 /usr/local/ /usr/local/
|
|
|
|
# Install dependencies
|
|
RUN apt-get update \
|
|
&& apt-get install -yq --no-install-suggests --no-install-recommends python-setuptools moreutils \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Create a user
|
|
RUN addgroup --gid $USER_GID bitmessage ;\
|
|
useradd --uid $USER_UID --gid $USER_GID -m -d $HOME bitmessage
|
|
|
|
WORKDIR ${HOME}
|
|
USER bitmessage
|
|
|
|
# Generate default config
|
|
RUN pybitmessage -t
|
|
|
|
# Setup environment
|
|
CMD cat keys.dat | \
|
|
sed -e "s|\(apiinterface = \).*|\10\.0\.0\.0|g" \
|
|
#-e "s|\(apivariant = \).*|\1json|g" \
|
|
-e "s|\(apiusername = \).*|\1$BITMESSAGE_API_USER|g" \
|
|
-e "s|\(apipassword = \).*|\1$BITMESSAGE_API_PASSWORD|g" \
|
|
-e "s|\(apiport = \).*|\1$BITMESSAGE_API_PORT|g" \
|
|
-e "s|\(apienabled = \).*|\1True|g" \
|
|
-e "s|\(ttl = \).*|\1$BITMESSAGE_TTL|g" \
|
|
-e "s|\(stopresendingafterxdays = \).*|\1$BITMESSAGE_STOPRESENDINGAFTERXDAYS|g" \
|
|
-e "s|\(udp = \).*|\1False|g" | \
|
|
sponge keys.dat && \
|
|
exec pybitmessage -d
|
|
|
|
# Generate Deterministic address
|
|
HEALTHCHECK --retries=3 --interval=15s \
|
|
CMD python -c "import xmlrpclib; api_link='http://$BITMESSAGE_API_USER:$BITMESSAGE_API_PASSWORD@127.0.0.1:8442/'; api = xmlrpclib.ServerProxy(api_link); print api.createDeterministicAddresses('$BITMESSAGE_SEED_PHRASE'.encode('base64'),$BITMESSAGE_SEED_ADDRESSES)" || exit 1
|
|
|