lightning-charge/Dockerfile

64 lines
2.3 KiB
Docker

FROM node:8.9-slim as builder
RUN apt-get update && apt-get install -y --no-install-recommends autoconf automake build-essential git libtool libgmp-dev \
libsqlite3-dev python python3 wget
ARG LIGHTNINGD_VERSION=ed3984f4446535002e18eb2086e42eb0273d5205
RUN git clone https://github.com/ElementsProject/lightning.git /opt/lightningd \
&& cd /opt/lightningd \
&& git checkout $LIGHTNINGD_VERSION \
&& make
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/bitcoind $BD/bitcoin-cli --strip-components=1
WORKDIR /opt/charged
ARG TESTRUNNER
COPY package*.json ./
RUN npm install \
&& test -n "$TESTRUNNER" || { \
cp -r node_modules node_modules.dev \
&& npm prune --production \
&& mv -f node_modules node_modules.prod \
&& mv -f node_modules.dev node_modules; }
# https://github.com/npm/npm/issues/19356#issuecomment-361475985
COPY . .
RUN npm run dist \
&& rm -rf src \
&& test -n "$TESTRUNNER" || (rm -rf test node_modules && mv -f node_modules.prod node_modules)
FROM node:8.9-slim
WORKDIR /opt/charged
ARG TESTRUNNER
ENV HOME /tmp
ENV NODE_ENV production
RUN apt-get update && apt-get install -y --no-install-recommends inotify-tools libgmp-dev libsqlite3-dev \
$(test -n "$TESTRUNNER" && echo jq) \
&& rm -rf /var/lib/apt/lists/* \
&& ln -s /opt/charged/bin/charged /usr/bin/charged \
&& mkdir /data
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/charged /opt/charged
CMD bin/docker-entrypoint.sh
EXPOSE 9112 9735