|
| 1 | +FROM debian:stable-slim as build |
| 2 | + |
| 3 | +RUN apt-get update -y \ |
| 4 | + && apt-get install -y automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libncursesw5 libtool autoconf libsqlite3-dev m4 ca-certificates gcc libc6-dev curl python3 htop nload |
| 5 | +RUN mkdir secp256k1-sources && cd secp256k1-sources \ |
| 6 | + && git clone https://github.com/bitcoin-core/secp256k1.git \ |
| 7 | + && cd secp256k1 && git reset --hard ac83be33d0956faf6b7f61a60ab524ef7d6a473a \ |
| 8 | + && ./autogen.sh && ./configure --prefix=/usr --enable-module-schnorrsig --enable-experimental \ |
| 9 | + && make && make check && make install |
| 10 | +RUN git clone https://github.com/input-output-hk/libsodium && cd libsodium \ |
| 11 | + && git checkout $(curl -L https://github.com/input-output-hk/iohk-nix/releases/latest/download/INFO | awk '$1 == "debian.libsodium-vrf.deb" { rev = gensub(/.*-(.*)\.deb/, "\\1", "g", $2); print rev }') \ |
| 12 | + && ./autogen.sh && ./configure && make && make check && make install |
| 13 | +RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_GHC_VERSION=9.6.5 BOOTSTRAP_HASKELL_CABAL_VERSION=3.10.3.0 BOOTSTRAP_HASKELL_INSTALL_STACK=1 BOOTSTRAP_HASKELL_INSTALL_HLS=1 BOOTSTRAP_HASKELL_ADJUST_BASHRC=P sh |
| 14 | +ENV PATH="/root/.cabal/bin:/root/.ghcup/bin:/root/.local/bin:$PATH" |
| 15 | +RUN git clone https://github.com/supranational/blst && cd blst && git checkout v0.3.10 && ./build.sh \ |
| 16 | + && echo cHJlZml4PS91c3IKZXhlY19wcmVmaXg9JHtwcmVmaXh9CmxpYmRpcj0ke2V4ZWNfcHJlZml4fS9saWIKaW5jbHVkZWRpcj0ke3ByZWZpeH0vaW5jbHVkZQoKTmFtZTogbGliYmxzdApEZXNjcmlwdGlvbjogTXVsdGlsaW5ndWFsIEJMUzEyLTM4MSBzaWduYXR1cmUgbGlicmFyeQpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdXByYW5hdGlvbmFsL2Jsc3QKVmVyc2lvbjogMC4zLjEwCkNmbGFnczogLUkke2luY2x1ZGVkaXJ9CkxpYnM6IC1MJHtsaWJkaXJ9IC1sYmxzdA== | base64 --decode >> libblst.pc \ |
| 17 | + && cp libblst.pc /usr/lib/pkgconfig/ && cp bindings/blst_aux.h bindings/blst.h bindings/blst.hpp /usr/include/ && cp libblst.a /usr/lib \ |
| 18 | + && chmod u=rw,go=r /usr/lib/libblst.a /usr/lib/pkgconfig/libblst.pc /usr/include/blst.h /usr/include/blst.hpp /usr/include/blst_aux.h |
| 19 | + |
| 20 | +ENV LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" \ |
| 21 | + PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" |
| 22 | + |
| 23 | +ARG VERSION |
| 24 | +COPY . . |
| 25 | + |
| 26 | +RUN cabal update \ |
| 27 | + && cabal configure --with-compiler=ghc-9.6.5 \ |
| 28 | + && echo "package cardano-crypto-praos" >> cabal.project.local \ |
| 29 | + && echo " flags: -external-libsodium-vrf" >> cabal.project.local \ |
| 30 | + && cabal build all --minimize-conflict-set \ |
| 31 | + && mkdir -p /root/.local/bin/ \ |
| 32 | + && cp -p dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-*/x/cardano-node/build/cardano-node/cardano-node /root/.local/bin/ |
| 33 | + |
| 34 | +FROM debian:stable-slim |
| 35 | +COPY --from=build /root/.local/bin/ /bin/ |
| 36 | +COPY --from=build /usr/local/lib/ /lib/ |
| 37 | +RUN apt-get update && apt-get install -y git libsodium23 libsodium-dev \ |
| 38 | + automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux jq wget libncursesw5 libtool autoconf libsqlite3-dev m4 ca-certificates gcc libc6-dev curl supervisor lsof procps bc python3 |
| 39 | +RUN mkdir secp256k1-sources && cd secp256k1-sources \ |
| 40 | + && git clone https://github.com/bitcoin-core/secp256k1.git && cd secp256k1 \ |
| 41 | + && git reset --hard ac83be33d0956faf6b7f61a60ab524ef7d6a473a \ |
| 42 | + && ./autogen.sh && ./configure --prefix=/usr --enable-module-schnorrsig --enable-experimental \ |
| 43 | + && make && make check && make install |
| 44 | +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y |
| 45 | +ENV PATH="/root/.cargo/bin:${PATH}" |
| 46 | +RUN git clone https://github.com/input-output-hk/mithril.git && cd mithril && git checkout stable && cargo build --release --bin mithril-signer |
| 47 | +RUN cp mithril/target/release/mithril-signer /bin/ |
| 48 | +RUN groupadd -g 1001 cardano && useradd -rm -d /home/cardano -s /bin/bash -g 1001 -G sudo -u 1001 cardano |
| 49 | +RUN mkdir -p /home/cardano/data/db /home/cardano/ipc /home/cardano/mithril && chown -R 1001:1001 /home/cardano |
| 50 | +RUN cd /home/cardano && git clone https://github.com/Emurgo/cardano-configurations.git \ |
| 51 | + && cd /home/cardano/cardano-configurations/network/mainnet/cardano-node \ |
| 52 | + && rm -f config.json && cp config-bp.json config.json |
| 53 | +RUN curl -s -o gLiveView.sh https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/gLiveView.sh && chmod 755 gLiveView.sh && mkdir /home/cardano/bin && mv gLiveView.sh /home/cardano/bin/gLiveView && chown cardano /home/cardano/bin |
| 54 | +COPY env /home/cardano/bin/env |
| 55 | +RUN echo "export PATH=$PATH:/home/cardano/bin" >> /root/.bashrc && echo "export PATH=$PATH:/home/cardano/bin" >> /home/cardano/.bashrc |
| 56 | +RUN echo "W3N1cGVydmlzb3JkXQpub2RhbW9uPXRydWUKCltwcm9ncmFtOmJsb2NrcHJvZHVjZXJdCmNvbW1hbmQ9L2Jpbi9jYXJkYW5vLW5vZGUgcnVuIC0tdG9wb2xvZ3kgJShFTlZfVE9QT0xPR1lfTE9DQVRJT04pIC0tZGF0YWJhc2UtcGF0aCAvaG9tZS9jYXJkYW5vL2RhdGEvZGIgLS1zb2NrZXQtcGF0aCAvaG9tZS9jYXJkYW5vL2lwYy9ub2RlLnNvY2tldCAtLWhvc3QtYWRkciAlKEVOVl9QVUJMSUNfSVApIC0tcG9ydCAlKEVOVl9QT1JUKSAtLWNvbmZpZyAvaG9tZS9jYXJkYW5vL2NhcmRhbm8tY29uZmlndXJhdGlvbnMvbmV0d29yay8lKEVOVl9ORVRXT1JLKS9jYXJkYW5vLW5vZGUvY29uZmlnLmpzb24gLS1zaGVsbGV5LWtlcy1rZXkgJShFTlZfS0VTX0tFWV9MT0NBVElPTikgLS1zaGVsbGV5LXZyZi1rZXkgJShFTlZfVlJGX0tFWV9MT0NBVElPTikgLS1zaGVsbGV5LW9wZXJhdGlvbmFsLWNlcnRpZmljYXRlICUoRU5WX05PREVfQ0VSVF9MT0NBVElPTikKc3Rkb3V0X2xvZ2ZpbGU9L2Rldi9zdGRvdXQKc3RkZXJyX2xvZ2ZpbGU9L2Rldi9zdGRlcnIKYXV0b3Jlc3RhcnQ9dHJ1ZQoKW3Byb2dyYW06bWl0aHJpbC1zaWduZXJdCmNvbW1hbmQ9L2Jpbi9taXRocmlsLXNpZ25lciAtLWNvbmZpZy1maWxlIC9ob21lL2NhcmRhbm8vbWl0aHJpbC9zaWduZXIueWFtbCAtLXNpZ25pbmcta2V5LXBhdGggL2hvbWUvY2FyZGFuby9taXRocmlsL3NpZ25lcl9wcml2YXRlX2tleS5zawoKc3Rkb3V0X2xvZ2ZpbGU9L2Rldi9zdGRvdXQKc3RkZXJyX2xvZ2ZpbGU9L2Rldi9zdGRlcnIKYXV0b3Jlc3RhcnQ9dHJ1ZQ==" | base64 -d > /etc/supervisor/conf.d/supervisord.conf |
| 57 | +USER 1001:1001 |
| 58 | +WORKDIR /home/cardano |
| 59 | +EXPOSE 8080 |
| 60 | + |
| 61 | +ENTRYPOINT ["/usr/bin/supervisord"] |
0 commit comments