Dockerfile 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. FROM ubuntu:18.04
  2. ENV DEBIAN_FRONTEND noninteractive
  3. # Install tools and dependencies
  4. RUN apt-get update && \
  5. apt-get -y install --no-install-recommends \
  6. ca-certificates \
  7. libsasl2-modules \
  8. git \
  9. automake \
  10. autopoint \
  11. autoconf \
  12. texinfo \
  13. libtool \
  14. libltdl-dev \
  15. libgpg-error-dev \
  16. libidn11-dev \
  17. libunistring-dev \
  18. libglpk-dev \
  19. libbluetooth-dev \
  20. libextractor-dev \
  21. libmicrohttpd-dev \
  22. libgnutls28-dev \
  23. libgcrypt20-dev \
  24. libpq-dev \
  25. libsqlite3-dev && \
  26. apt-get clean all && \
  27. apt-get -y autoremove && \
  28. rm -rf \
  29. /var/lib/apt/lists/* \
  30. /tmp/*
  31. # Install GNUrl
  32. ENV GNURL_GIT_URL https://git.taler.net/gnurl.git
  33. ENV GNURL_GIT_BRANCH gnurl-7.57.0
  34. RUN git clone $GNURL_GIT_URL \
  35. --branch $GNURL_GIT_BRANCH \
  36. --depth=1 \
  37. --quiet && \
  38. cd /gnurl && \
  39. autoreconf -i && \
  40. ./configure \
  41. --enable-ipv6 \
  42. --with-gnutls \
  43. --without-libssh2 \
  44. --without-libmetalink \
  45. --without-winidn \
  46. --without-librtmp \
  47. --without-nghttp2 \
  48. --without-nss \
  49. --without-cyassl \
  50. --without-polarssl \
  51. --without-ssl \
  52. --without-winssl \
  53. --without-darwinssl \
  54. --disable-sspi \
  55. --disable-ntlm-wb \
  56. --disable-ldap \
  57. --disable-rtsp \
  58. --disable-dict \
  59. --disable-telnet \
  60. --disable-tftp \
  61. --disable-pop3 \
  62. --disable-imap \
  63. --disable-smtp \
  64. --disable-gopher \
  65. --disable-file \
  66. --disable-ftp \
  67. --disable-smb && \
  68. make install && \
  69. cd - && \
  70. rm -fr /gnurl
  71. # Install GNUnet
  72. ENV GNUNET_PREFIX /usr/local/gnunet
  73. ENV CFLAGS '-g -Wall -O0'
  74. COPY . /gnunet
  75. RUN cd /gnunet && \
  76. ./bootstrap && \
  77. ./configure \
  78. --with-nssdir=/lib \
  79. --prefix="$GNUNET_PREFIX" \
  80. --enable-logging=verbose && \
  81. make -j3 && \
  82. make install && \
  83. ldconfig && \
  84. cd - && \
  85. rm -fr /gnunet
  86. # Configure GNUnet
  87. COPY docker/gnunet.conf /etc/gnunet.conf
  88. COPY docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
  89. RUN chmod 755 /usr/local/bin/docker-entrypoint
  90. ENV LOCAL_PORT_RANGE='40001 40200'
  91. ENV PATH "$GNUNET_PREFIX/bin:/usr/local/bin:$PATH"
  92. ENTRYPOINT ["docker-entrypoint"]