Dockerfile 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. FROM debian:latest
  2. RUN apt-get update && \
  3. apt-get upgrade -y && \
  4. apt-get install -y \
  5. build-essential \
  6. libboost-all-dev \
  7. libdb5.3-dev \
  8. libdb5.3++-dev \
  9. libminiupnpc-dev \
  10. libqrencode-dev \
  11. libssl-dev \
  12. libssl3 \
  13. miniupnpc \
  14. qtbase5-dev \
  15. qttools5-dev-tools \
  16. zlib1g-dev \
  17. qt5-qmake \
  18. qtbase5-dev \
  19. g++-arm-linux-gnueabihf && \
  20. rm -rf /var/lib/apt/lists/*
  21. COPY ./ecoin /ecoin
  22. WORKDIR /ecoin
  23. # Build bootstrap.
  24. RUN cd /ecoin/src/boost_1_68_0 && \
  25. ./bootstrap.sh \
  26. # amr64
  27. # ./b2 toolset=gcc-arm cxxflags="-march=armv8-a" install --prefix=/usr/local
  28. # amr32
  29. ./b2 toolset=gcc-arm cxxflags="-march=armv7-a" install --prefix=/usr/local
  30. # Build leveldb
  31. RUN cd /ecoin/src \
  32. rm -rf leveldb \
  33. git clone --depth=1 https://github.com/google/leveldb.git \
  34. cd leveldb \
  35. mkdir -p build \
  36. cd build \
  37. cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 .. \
  38. make -j$(nproc)
  39. # RUN cd /ecoin/src/leveldb && \
  40. # TARGET_OS=Linux make libleveldb.a libmemenv.a
  41. # Build qt5 make make
  42. RUN cd /ecoin && \
  43. # amr64
  44. # /usr/lib/aarch64-linux-gnu/qt5/bin/qmake \
  45. # amr32
  46. /usr/lib/arm-linux-gnueabihf/qt5/bin/qmake \
  47. USE_UPNP=- USE_IPV6=- USE_QRCODE=1 \
  48. -o Makefile ecoin-qt.pro
  49. # Build daemon based wallet
  50. RUN cd /ecoin/src && \
  51. make \
  52. USE_UPNP=- USE_IPV6=- USE_QRCODE=1 \
  53. -f makefile.linux && \
  54. strip ecoind
  55. RUN cp -r /ecoin/src/ecoind /usr/local/bin/ecoind
  56. RUN export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH && ldconfig