diff options
Diffstat (limited to 'contrib/docker/Dockerfile')
-rw-r--r-- | contrib/docker/Dockerfile | 126 |
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 @@ | |||
1 | FROM ubuntu:18.04 | 1 | # FROM ubuntu:20.04 |
2 | FROM debian:stable | ||
2 | 3 | ||
3 | ENV DEBIAN_FRONTEND noninteractive | 4 | ENV DEBIAN_FRONTEND noninteractive |
4 | 5 | ||
5 | # Install tools and dependencies | 6 | # Install tools and dependencies |
6 | RUN apt-get update && \ | 7 | RUN 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 | ||
13 | RUN 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 && \ | 52 | RUN 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 |
36 | ENV GNURL_VERSION=7.57.0 | 59 | RUN wget -O /tmp/jose.tar.gz https://github.com/latchset/jose/archive/refs/tags/v11.tar.gz |
37 | |||
38 | RUN wget -O /tmp/gnurl.tar.xz https://ftpmirror.gnu.org/gnu/gnunet/gnurl-${GNURL_VERSION}.tar.xz | ||
39 | RUN cd /tmp && \ | 60 | RUN 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 \ | 72 | RUN 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 \ | 77 | COPY . /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 |
76 | ENV GNUNET_PREFIX /usr/local/gnunet | 87 | # RUN mkdir /tmp/gnunet && tar xf "/tmp/gnunet-$VERSION.tar.gz" -C /tmp/gnunet --strip-components=1 |
77 | ENV CFLAGS '-g -Wall -O0' | ||
78 | 88 | ||
79 | COPY . /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 | ||
81 | RUN cd /gnunet && \ | 101 | RUN 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 |
94 | COPY ./contrib/docker/gnunet.conf /etc/gnunet.conf | 111 | RUN cp /tmp/gnunet/contrib/docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint |
95 | COPY ./contrib/docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint | ||
96 | RUN chmod 755 /usr/local/bin/docker-entrypoint | 112 | RUN chmod 755 /usr/local/bin/docker-entrypoint |
97 | 113 | ||
98 | ENV LOCAL_PORT_RANGE='40001 40200' | 114 | ENV LOCAL_PORT_RANGE='40001 40200' |