|
1 | | -FROM debian:stable-slim AS builder |
| 1 | +FROM debian:stretch-slim as builder |
2 | 2 |
|
3 | | -# VERSION of Elements Core to be build |
| 3 | +# VERSION of Elements Core to be download |
4 | 4 | ARG VERSION=0.21.0 |
| 5 | +ARG TARGETPLATFORM |
5 | 6 |
|
6 | | -RUN apt-get update && apt-get install -y wget curl libzmq3-dev build-essential libtool autotools-dev automake pkg-config bsdmainutils python3 libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb-dev libdb++-dev libdb4.8 |
| 7 | +RUN set -ex \ |
| 8 | + && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ |
| 9 | + && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ |
| 10 | + && apt-get update \ |
| 11 | + && apt-get install -qq --no-install-recommends ca-certificates wget \ |
| 12 | + && cd /tmp \ |
| 13 | + && wget -qO elements.tar.gz "https://github.com/ElementsProject/elements/releases/download/elements-$VERSION/elements-elements-$VERSION-$TARGETPLATFORM.tar.gz" \ |
| 14 | + && mkdir bin \ |
| 15 | + && tar -xzvf elements.tar.gz -C /tmp/bin --strip-components=2 "elements-elements-$VERSION/bin/elements-cli" "elements-elements-$VERSION/bin/elementsd" |
7 | 16 |
|
8 | | -RUN wget -qO- https://github.com/ElementsProject/elements/archive/elements-$VERSION.tar.gz | tar -xvz -C /tmp |
| 17 | +FROM debian:stretch-slim |
9 | 18 |
|
10 | | -RUN cd /tmp/elements-elements-$VERSION/depends && make NO_QT=1 NO_UPNP=1 && cd .. && \ |
11 | | - ./autogen.sh && \ |
12 | | - ./configure --without-gui --with-incompatible-bdb && \ |
13 | | - make && \ |
14 | | - mv ./src/elementsd /elementsd && \ |
15 | | - mv ./src/elements-cli /elements-cli |
| 19 | +COPY --from=builder "/tmp/bin" /usr/local/bin |
16 | 20 |
|
17 | | -FROM debian:stable-slim |
18 | | - |
19 | | -RUN apt-get update && apt-get install -y libboost-filesystem-dev \ |
20 | | - libboost-thread-dev \ |
21 | | - libevent-dev \ |
22 | | - libsodium-dev \ |
23 | | - libzmq3-dev \ |
24 | | - libdb-dev \ |
25 | | - libdb++-dev |
26 | | - |
27 | | -RUN useradd -ms /bin/bash elements |
| 21 | +RUN groupadd -r elements && useradd -r -m -g elements elements |
28 | 22 |
|
29 | 23 | USER elements |
30 | 24 |
|
31 | | -COPY --from=builder /elementsd /usr/local/bin/elementsd |
32 | | -COPY --from=builder /elements-cli /usr/local/bin/elements-cli |
33 | | - |
34 | | -# Prevents `VOLUME $HOME/.elements/` being created as owned by `root` |
35 | | -RUN mkdir -p "$HOME/.elements/" |
| 25 | +RUN mkdir -p "$HOME/.elements/" \ |
| 26 | + && chown -R elements:elements /home/elements/.elements |
36 | 27 |
|
37 | 28 | ENTRYPOINT [ "elementsd" ] |
| 29 | + |
| 30 | + |
0 commit comments