# 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} # Generate default config RUN pybitmessage -t # Setup environment CMD chown bitmessage:bitmessage keys.dat; chmod 600 keys.dat; \ 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 && \ su bitmessage -c "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