2017-11-17 05:14:19 +01:00
|
|
|
# Multistage docker build, requires docker 17.05
|
|
|
|
|
|
|
|
# builder stage
|
2021-09-12 00:05:56 +02:00
|
|
|
FROM ubuntu:20.04 as builder
|
2017-11-17 05:14:19 +01:00
|
|
|
|
2018-03-19 00:07:10 +01:00
|
|
|
RUN set -ex && \
|
|
|
|
apt-get update && \
|
2021-09-12 00:05:56 +02:00
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends --yes install \
|
|
|
|
automake \
|
|
|
|
autotools-dev \
|
|
|
|
bsdmainutils \
|
|
|
|
build-essential \
|
2017-11-17 05:14:19 +01:00
|
|
|
ca-certificates \
|
2021-09-12 00:05:56 +02:00
|
|
|
ccache \
|
2017-11-17 05:14:19 +01:00
|
|
|
cmake \
|
2018-02-02 14:45:28 +01:00
|
|
|
curl \
|
2021-09-12 00:05:56 +02:00
|
|
|
git \
|
|
|
|
libtool \
|
|
|
|
pkg-config \
|
|
|
|
gperf
|
2018-12-04 22:01:03 +01:00
|
|
|
|
2017-11-17 05:14:19 +01:00
|
|
|
WORKDIR /src
|
|
|
|
COPY . .
|
2017-12-12 00:33:08 +01:00
|
|
|
|
|
|
|
ARG NPROC
|
2018-03-19 00:07:10 +01:00
|
|
|
RUN set -ex && \
|
2018-10-13 23:13:43 +02:00
|
|
|
git submodule init && git submodule update && \
|
2018-03-19 00:07:10 +01:00
|
|
|
rm -rf build && \
|
|
|
|
if [ -z "$NPROC" ] ; \
|
2021-09-12 00:05:56 +02:00
|
|
|
then make -j$(nproc) depends target=x86_64-linux-gnu ; \
|
|
|
|
else make -j$NPROC depends target=x86_64-linux-gnu ; \
|
2018-03-19 00:07:10 +01:00
|
|
|
fi
|
2017-11-17 05:14:19 +01:00
|
|
|
|
|
|
|
# runtime stage
|
2021-09-12 00:05:56 +02:00
|
|
|
FROM ubuntu:20.04
|
2017-02-23 23:55:37 +01:00
|
|
|
|
2018-03-19 00:07:10 +01:00
|
|
|
RUN set -ex && \
|
|
|
|
apt-get update && \
|
2017-11-18 07:45:39 +01:00
|
|
|
apt-get --no-install-recommends --yes install ca-certificates && \
|
2017-11-17 05:14:19 +01:00
|
|
|
apt-get clean && \
|
|
|
|
rm -rf /var/lib/apt
|
2021-09-12 00:05:56 +02:00
|
|
|
COPY --from=builder /src/build/x86_64-linux-gnu/release/bin /usr/local/bin/
|
2016-08-31 18:10:44 +02:00
|
|
|
|
2020-02-12 00:30:22 +01:00
|
|
|
# Create townforge user
|
|
|
|
RUN adduser --system --group --disabled-password townforge && \
|
|
|
|
mkdir -p /wallet /home/townforge/.townforge && \
|
|
|
|
chown -R townforge:townforge /home/townforge/.townforge && \
|
|
|
|
chown -R townforge:townforge /wallet
|
2019-03-09 23:22:03 +01:00
|
|
|
|
2016-08-31 18:10:44 +02:00
|
|
|
# Contains the blockchain
|
2020-02-12 00:30:22 +01:00
|
|
|
VOLUME /home/townforge/.townforge
|
2016-08-31 18:10:44 +02:00
|
|
|
|
|
|
|
# Generate your wallet via accessing the container and run:
|
|
|
|
# cd /wallet
|
2020-02-12 00:30:22 +01:00
|
|
|
# townforge-wallet-cli
|
2016-08-31 18:10:44 +02:00
|
|
|
VOLUME /wallet
|
|
|
|
|
|
|
|
EXPOSE 18080
|
|
|
|
EXPOSE 18081
|
|
|
|
|
2020-02-12 00:30:22 +01:00
|
|
|
# switch to user townforge
|
|
|
|
USER townforge
|
2019-03-09 23:22:03 +01:00
|
|
|
|
2022-08-08 19:44:32 +02:00
|
|
|
ENTRYPOINT ["townforged"]
|
|
|
|
CMD ["--p2p-bind-ip=0.0.0.0", "--p2p-bind-port=18880", "--rpc-bind-ip=0.0.0.0", "--rpc-bind-port=18881", "--non-interactive", "--confirm-external-bind"]
|
2018-07-03 18:44:03 +02:00
|
|
|
|