# A container for PyBitmessage daemon
FROM ubuntu:bionic

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

## Do not use cache when building next layers of the image.
ARG NOCACHE=0

WORKDIR /root/PyBitmessage
RUN git clone https://github.com/Bitmessage/PyBitmessage .

# Install
RUN pip2 install jsonrpclib .

FROM ubuntu:bionic

EXPOSE 8442/tcp

ENV USER_UID=2000
ENV USER_GID=2000
ENV HOME=/home/bitmessage
ENV BITMESSAGE_HOME=${HOME}

COPY --from=0 /usr/local/ /usr/local/
COPY ./docker/healthy_check.py /usr/local/bin/
COPY ./docker/seed_addr_gen.py /usr/local/bin/
COPY ./docker/run.sh /usr/local/bin/

# Install dependencies
RUN apt-get update \
	&& apt-get install -yq --no-install-suggests --no-install-recommends python-setuptools moreutils gosu \
	&& rm -rf /var/lib/apt/lists/*

# Create a user
RUN addgroup --gid $USER_GID bitmessage ;\
	useradd --uid $USER_UID --gid $USER_GID --skel /dev/null --create-home --home-dir $HOME bitmessage

WORKDIR ${HOME}

# Generate default config
RUN su bitmessage -c "pybitmessage -t"

CMD ["sh", "/usr/local/bin/run.sh"]

## Check PyBitmessage active network connections
HEALTHCHECK --retries=0 --interval=15s \
  CMD ["python", "/usr/local/bin/healthy_check.py"]

