mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 18:11:28 +01:00
48728d3828
We were compiling them from source, but then not adding them in the final docker image. This just drops the source based ones in favor of system provided ones. Fixes #3074
104 lines
3.7 KiB
Docker
104 lines
3.7 KiB
Docker
# This dockerfile is meant to compile a c-lightning x64 image
|
|
# It is using multi stage build:
|
|
# * downloader: Download litecoin/bitcoin and qemu binaries needed for c-lightning
|
|
# * builder: Compile c-lightning dependencies, then c-lightning itself with static linking
|
|
# * final: Copy the binaries required at runtime
|
|
# The resulting image uploaded to dockerhub will only contain what is needed for runtime.
|
|
# From the root of the repository, run "docker build -t yourimage:yourtag ."
|
|
FROM debian:stretch-slim as downloader
|
|
|
|
RUN set -ex \
|
|
&& apt-get update \
|
|
&& apt-get install -qq --no-install-recommends ca-certificates dirmngr wget
|
|
|
|
WORKDIR /opt
|
|
|
|
RUN wget -qO /opt/tini "https://github.com/krallin/tini/releases/download/v0.18.0/tini" \
|
|
&& echo "12d20136605531b09a2c2dac02ccee85e1b874eb322ef6baf7561cd93f93c855 /opt/tini" | sha256sum -c - \
|
|
&& chmod +x /opt/tini
|
|
|
|
ARG BITCOIN_VERSION=0.17.0
|
|
ENV BITCOIN_TARBALL bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz
|
|
ENV BITCOIN_URL https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/$BITCOIN_TARBALL
|
|
ENV BITCOIN_ASC_URL https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/SHA256SUMS.asc
|
|
|
|
RUN mkdir /opt/bitcoin && cd /opt/bitcoin \
|
|
&& wget -qO $BITCOIN_TARBALL "$BITCOIN_URL" \
|
|
&& wget -qO bitcoin.asc "$BITCOIN_ASC_URL" \
|
|
&& grep $BITCOIN_TARBALL bitcoin.asc | tee SHA256SUMS.asc \
|
|
&& sha256sum -c SHA256SUMS.asc \
|
|
&& BD=bitcoin-$BITCOIN_VERSION/bin \
|
|
&& tar -xzvf $BITCOIN_TARBALL $BD/bitcoin-cli --strip-components=1 \
|
|
&& rm $BITCOIN_TARBALL
|
|
|
|
ENV LITECOIN_VERSION 0.16.3
|
|
ENV LITECOIN_PGP_KEY FE3348877809386C
|
|
ENV LITECOIN_URL https://download.litecoin.org/litecoin-${LITECOIN_VERSION}/linux/litecoin-${LITECOIN_VERSION}-x86_64-linux-gnu.tar.gz
|
|
ENV LITECOIN_ASC_URL https://download.litecoin.org/litecoin-${LITECOIN_VERSION}/linux/litecoin-${LITECOIN_VERSION}-linux-signatures.asc
|
|
ENV LITECOIN_SHA256 686d99d1746528648c2c54a1363d046436fd172beadaceea80bdc93043805994
|
|
|
|
# install litecoin binaries
|
|
RUN mkdir /opt/litecoin && cd /opt/litecoin \
|
|
&& wget -qO litecoin.tar.gz "$LITECOIN_URL" \
|
|
&& echo "$LITECOIN_SHA256 litecoin.tar.gz" | sha256sum -c - \
|
|
&& BD=litecoin-$LITECOIN_VERSION/bin \
|
|
&& tar -xzvf litecoin.tar.gz $BD/litecoin-cli --strip-components=1 --exclude=*-qt \
|
|
&& rm litecoin.tar.gz
|
|
|
|
FROM debian:stretch-slim as builder
|
|
|
|
ENV LIGHTNINGD_VERSION=master
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
autoconf \
|
|
automake \
|
|
build-essential \
|
|
git \
|
|
libtool \
|
|
python \
|
|
python3 \
|
|
python3-mako \
|
|
wget \
|
|
gnupg \
|
|
dirmngr \
|
|
git \
|
|
gettext \
|
|
unzip \
|
|
tclsh \
|
|
libsqlite3-dev \
|
|
libgmp-dev \
|
|
zlib1g-dev
|
|
|
|
WORKDIR /opt/lightningd
|
|
COPY . /tmp/lightning
|
|
RUN git clone --recursive /tmp/lightning . && \
|
|
git checkout $(git --work-tree=/tmp/lightning --git-dir=/tmp/lightning/.git rev-parse HEAD)
|
|
|
|
ARG DEVELOPER=0
|
|
RUN ./configure --prefix=/tmp/lightning_install --enable-static && make -j3 DEVELOPER=${DEVELOPER} && make install
|
|
|
|
FROM debian:stretch-slim as final
|
|
COPY --from=downloader /opt/tini /usr/bin/tini
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
socat \
|
|
inotify-tools \
|
|
libgmp10 \
|
|
libsqlite3-0 \
|
|
zlib1g \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV LIGHTNINGD_DATA=/root/.lightning
|
|
ENV LIGHTNINGD_RPC_PORT=9835
|
|
ENV LIGHTNINGD_PORT=9735
|
|
|
|
RUN mkdir $LIGHTNINGD_DATA && \
|
|
touch $LIGHTNINGD_DATA/config
|
|
VOLUME [ "/root/.lightning" ]
|
|
COPY --from=builder /tmp/lightning_install/ /usr/local/
|
|
COPY --from=downloader /opt/bitcoin/bin /usr/bin
|
|
COPY --from=downloader /opt/litecoin/bin /usr/bin
|
|
COPY tools/docker-entrypoint.sh entrypoint.sh
|
|
|
|
EXPOSE 9735 9835
|
|
ENTRYPOINT [ "/usr/bin/tini", "-g", "--", "./entrypoint.sh" ]
|