forked from ElementsProject/lightning
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is based on @NicolasDorier's excellent proposal for a Dockerfile, sans the writing of a config file. Co-authored-by: Nicolas Dorier <[email protected]> Co-authored-by: Christian Decker <[email protected]> Signed-off-by: Christian Decker <[email protected]>
- Loading branch information
1 parent
1899e00
commit 0d3c3a2
Showing
4 changed files
with
173 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Declare files that will always have CRLF line endings on checkout. | ||
*.sh text eol=lf | ||
*.py text eol=lf | ||
Makefile text eol=lf | ||
Makefile text eol=lf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
FROM alpine:3.7 as builder | ||
|
||
RUN apk add --no-cache \ | ||
ca-certificates \ | ||
autoconf \ | ||
automake \ | ||
build-base \ | ||
libressl \ | ||
libtool \ | ||
gmp-dev \ | ||
python \ | ||
python-dev \ | ||
python3 \ | ||
sqlite-dev \ | ||
wget \ | ||
git \ | ||
file \ | ||
gnupg \ | ||
swig \ | ||
zlib-dev | ||
|
||
WORKDIR /opt | ||
|
||
ENV BITCOIN_VERSION 0.16.0 | ||
ENV BITCOIN_URL https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/bitcoin-$BITCOIN_VERSION-x86_64-linux-gnu.tar.gz | ||
ENV BITCOIN_SHA256 e6322c69bcc974a29e6a715e0ecb8799d2d21691d683eeb8fef65fc5f6a66477 | ||
ENV BITCOIN_ASC_URL https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/SHA256SUMS.asc | ||
ENV BITCOIN_PGP_KEY 01EA5486DE18A882D4C2684590C8019E36C2E964 | ||
|
||
RUN mkdir /opt/bitcoin && cd /opt/bitcoin \ | ||
&& wget -qO bitcoin.tar.gz "$BITCOIN_URL" \ | ||
&& echo "$BITCOIN_SHA256 bitcoin.tar.gz" | sha256sum -c - \ | ||
&& gpg --keyserver keyserver.ubuntu.com --recv-keys "$BITCOIN_PGP_KEY" \ | ||
&& wget -qO bitcoin.asc "$BITCOIN_ASC_URL" \ | ||
&& gpg --verify bitcoin.asc \ | ||
&& BD=bitcoin-$BITCOIN_VERSION/bin \ | ||
&& tar -xzvf bitcoin.tar.gz $BD/bitcoin-cli --strip-components=1 \ | ||
&& rm bitcoin.tar.gz | ||
|
||
ENV LITECOIN_VERSION 0.14.2 | ||
ENV LITECOIN_URL https://download.litecoin.org/litecoin-0.14.2/linux/litecoin-0.14.2-x86_64-linux-gnu.tar.gz | ||
ENV LITECOIN_SHA256 05f409ee57ce83124f2463a3277dc8d46fca18637052d1021130e4deaca07b3c | ||
ENV LITECOIN_ASC_URL https://download.litecoin.org/litecoin-0.14.2/linux/litecoin-0.14.2-linux-signatures.asc | ||
ENV LITECOIN_PGP_KEY FE3348877809386C | ||
|
||
# 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 - \ | ||
&& gpg --keyserver keyserver.ubuntu.com --recv-keys "$LITECOIN_PGP_KEY" \ | ||
&& wget -qO litecoin.asc "$LITECOIN_ASC_URL" \ | ||
&& gpg --verify litecoin.asc \ | ||
&& BD=litecoin-$LITECOIN_VERSION/bin \ | ||
&& tar -xzvf litecoin.tar.gz $BD/litecoin-cli --strip-components=1 --exclude=*-qt \ | ||
&& rm litecoin.tar.gz | ||
|
||
ENV LIGHTNINGD_VERSION=master | ||
|
||
WORKDIR /opt/lightningd | ||
COPY . . | ||
|
||
ARG DEVELOPER=0 | ||
RUN ./configure && make -j3 DEVELOPER=${DEVELOPER} && cp lightningd/lightning* cli/lightning-cli /usr/bin/ | ||
|
||
FROM alpine:3.7 | ||
|
||
RUN apk add --no-cache \ | ||
gmp-dev \ | ||
sqlite-dev \ | ||
inotify-tools \ | ||
socat \ | ||
bash \ | ||
zlib-dev | ||
|
||
ENV GLIBC_VERSION 2.27-r0 | ||
ENV GLIBC_SHA256 938bceae3b83c53e7fa9cc4135ce45e04aae99256c5e74cf186c794b97473bc7 | ||
ENV GLIBCBIN_SHA256 3a87874e57b9d92e223f3e90356aaea994af67fb76b71bb72abfb809e948d0d6 | ||
# Download and install glibc (https://github.com/jeanblanchard/docker-alpine-glibc/blob/master/Dockerfile) | ||
RUN apk add --update curl && \ | ||
curl -Lo /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \ | ||
curl -Lo glibc.apk "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk" && \ | ||
echo "$GLIBC_SHA256 glibc.apk" | sha256sum -c - && \ | ||
curl -Lo glibc-bin.apk "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk" && \ | ||
echo "$GLIBCBIN_SHA256 glibc-bin.apk" | sha256sum -c - && \ | ||
apk add glibc-bin.apk glibc.apk && \ | ||
/usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib && \ | ||
echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \ | ||
apk del curl && \ | ||
rm -rf glibc.apk glibc-bin.apk /var/cache/apk/* | ||
|
||
ENV LIGHTNINGD_DATA=/root/.lightning | ||
ENV LIGHTNINGD_PORT=9735 | ||
|
||
VOLUME [ "/root/.lightning" ] | ||
|
||
COPY --from=builder /opt/lightningd/cli/lightning-cli /usr/bin | ||
COPY --from=builder /opt/lightningd/lightningd/lightning* /usr/bin/ | ||
COPY --from=builder /opt/bitcoin/bin /usr/bin | ||
COPY --from=builder /opt/litecoin/bin /usr/bin | ||
COPY tools/docker-entrypoint.sh entrypoint.sh | ||
|
||
EXPOSE 9735 | ||
ENTRYPOINT [ "./entrypoint.sh" ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/bash | ||
|
||
: "${EXPOSE_TCP:=false}" | ||
|
||
if [ "$EXPOSE_TCP" == "true" ]; then | ||
set -m | ||
lightningd "$@" & | ||
|
||
echo "C-Lightning starting" | ||
while read -r i; do if [ "$i" = "lightning-rpc" ]; then break; fi; done \ | ||
< <(inotifywait -e create,open --format '%f' --quiet "$LIGHTNINGD_DATA" --monitor) | ||
echo "C-Lightning started" | ||
|
||
socat "TCP4-listen:$LIGHTNINGD_PORT,fork,reuseaddr" "UNIX-CONNECT:$LIGHTNINGD_DATA/lightning-rpc" & | ||
fg %- | ||
else | ||
lightningd "$@" | ||
fi |