aboutsummaryrefslogtreecommitdiff
path: root/contrib/docker/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/docker/Dockerfile')
-rw-r--r--contrib/docker/Dockerfile126
1 files changed, 71 insertions, 55 deletions
diff --git a/contrib/docker/Dockerfile b/contrib/docker/Dockerfile
index adcd7132c..de087df71 100644
--- a/contrib/docker/Dockerfile
+++ b/contrib/docker/Dockerfile
@@ -1,16 +1,39 @@
1FROM ubuntu:18.04 1# FROM ubuntu:20.04
2FROM debian:stable
2 3
3ENV DEBIAN_FRONTEND noninteractive 4ENV DEBIAN_FRONTEND noninteractive
4 5
5# Install tools and dependencies 6# Install tools and dependencies
6RUN apt-get update && \ 7RUN apt-get update && \
7 apt-get -y install --no-install-recommends \ 8 apt-get upgrade && \
9 apt-get -y install --no-install-recommends \
10 apt-utils
11
12# Install tools and dependencies
13RUN apt-get update && \
14 apt-get upgrade && \
15 apt-get -y install --no-install-recommends \
8 ca-certificates \ 16 ca-certificates \
17 iptables \
18 python3 \
19 python3-pip \
20 iproute2 \
21 net-tools \
9 libsasl2-modules \ 22 libsasl2-modules \
10 git \ 23 git \
11 automake \ 24 automake \
12 autopoint \ 25 autopoint \
13 autoconf \ 26 autoconf \
27 recutils \
28 make \
29 libssl-dev \
30 ninja-build \
31 meson \
32 curl \
33 libcurl4-gnutls-dev \
34 libsodium-dev \
35 libsodium23 \
36 libjansson-dev \
14 texinfo \ 37 texinfo \
15 libtool \ 38 libtool \
16 libltdl-dev \ 39 libltdl-dev \
@@ -25,74 +48,67 @@ RUN apt-get update && \
25 libgcrypt20-dev \ 48 libgcrypt20-dev \
26 libpq-dev \ 49 libpq-dev \
27 libsqlite3-dev \ 50 libsqlite3-dev \
28 wget && \ 51 wget
29 apt-get clean all && \ 52RUN apt-get clean all && \
30 apt-get -y autoremove && \ 53 apt-get -y autoremove && \
31 rm -rf \ 54 rm -rf \
32 /var/lib/apt/lists/* \ 55 /var/lib/apt/lists/* \
33 /tmp/* 56 /tmp/*
34 57
35# Install GNUrl 58# Install jose
36ENV GNURL_VERSION=7.57.0 59RUN wget -O /tmp/jose.tar.gz https://github.com/latchset/jose/archive/refs/tags/v11.tar.gz
37
38RUN wget -O /tmp/gnurl.tar.xz https://ftpmirror.gnu.org/gnu/gnunet/gnurl-${GNURL_VERSION}.tar.xz
39RUN cd /tmp && \ 60RUN cd /tmp && \
40 tar xvf gnurl.tar.xz && \ 61 tar xvf jose.tar.gz && \
41 cd gnurl-${GNURL_VERSION} && \ 62 cd jose-11 && \
42 autoreconf -i && \ 63 mkdir build && \
43 ./configure \ 64 cd build && \
44 --enable-ipv6 \ 65 meson .. --prefix=/usr/local/lib && \
45 --with-gnutls \ 66 ninja && \
46 --without-libssh2 \ 67 ninja install && \
47 --without-libmetalink \ 68 cd / && \
48 --without-winidn \ 69 rm -rf /tmp/jose-11/*
49 --without-librtmp \ 70
50 --without-nghttp2 \ 71# Intall Python Packages for Documentation
51 --without-nss \ 72RUN pip3 install \
52 --without-cyassl \ 73 docutils==0.17.1 \
53 --without-polarssl \ 74 sphinx \
54 --without-ssl \ 75 sphinx-rtd-theme
55 --without-winssl \ 76
56 --without-darwinssl \ 77COPY . /tmp/gnunet
57 --disable-sspi \ 78
58 --disable-ntlm-wb \ 79# ENV VERSION=0.18.1
59 --disable-ldap \ 80# ENV HASH=719fc54734ee54c36ff619a6aa2d659655db012c40f9210c0859459c435fce1a
60 --disable-rtsp \ 81# RUN wget "ftpmirror.gnu.org/gnunet/gnunet-$VERSION.tar.gz" -P /tmp
61 --disable-dict \ 82
62 --disable-telnet \ 83# Check the gnunet download integrity
63 --disable-tftp \ 84# RUN echo "$HASH /tmp/gnunet-$VERSION.tar.gz" | sha256sum --check --status
64 --disable-pop3 \
65 --disable-imap \
66 --disable-smtp \
67 --disable-gopher \
68 --disable-file \
69 --disable-ftp \
70 --disable-smb && \
71 make install && \
72 cd - && \
73 rm -rf /tmp/gnurl*
74 85
75# Install GNUnet 86# Extract gnunet
76ENV GNUNET_PREFIX /usr/local/gnunet 87# RUN mkdir /tmp/gnunet && tar xf "/tmp/gnunet-$VERSION.tar.gz" -C /tmp/gnunet --strip-components=1
77ENV CFLAGS '-g -Wall -O0'
78 88
79COPY . /gnunet 89# Install gnunet
90# ENV GNUNET_PREFIX=/usr/local/lib
91# ENV CFLAGS '-g -Wall -O0'
92#
93# RUN cd /tmp/gnunet && \
94# ./configure \
95# --prefix="$GNUNET_PREFIX/.." \
96# --enable-logging=verbose && \
97# make -j && \
98# make install && \
99# ldconfig
80 100
81RUN cd /gnunet && \ 101RUN cd /tmp/gnunet && \
82 ./bootstrap && \ 102 ./bootstrap && \
83 ./configure \ 103 ./configure \
84 --with-nssdir=/lib \ 104 --prefix="$GNUNET_PREFIX/.." \
85 --prefix="$GNUNET_PREFIX" \
86 --enable-logging=verbose && \ 105 --enable-logging=verbose && \
87 make -j3 && \ 106 make -j && \
88 make install && \ 107 make install && \
89 ldconfig && \ 108 ldconfig
90 cd - && \
91 rm -fr /gnunet
92 109
93# Configure GNUnet 110# Configure GNUnet
94COPY ./contrib/docker/gnunet.conf /etc/gnunet.conf 111RUN cp /tmp/gnunet/contrib/docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
95COPY ./contrib/docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
96RUN chmod 755 /usr/local/bin/docker-entrypoint 112RUN chmod 755 /usr/local/bin/docker-entrypoint
97 113
98ENV LOCAL_PORT_RANGE='40001 40200' 114ENV LOCAL_PORT_RANGE='40001 40200'