This is a dockerfile, which compiles gnunet from the git repository on building the image, and a startup script.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

48 lines
1.4 KiB

FROM amd64/debian:stable
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y git libtool autoconf autopoint \
build-essential libgcrypt-dev libidn11-dev zlib1g-dev \
libunistring-dev libglpk-dev miniupnpc libextractor-dev \
libjansson-dev libcurl4-gnutls-dev gnutls-bin libsqlite3-dev \
openssl libnss3-tools libopus-dev libpulse-dev libogg-dev \
libargon2-dev libsodium-dev libgnutls28-dev htop
RUN mkdir /gnunet_installation
RUN mkdir /gnunet_installation/gnunet
RUN mkdir /gnunet_installation/libmicrohttpd
RUN git clone --depth 1 https://gnunet.org/git/gnunet.git /gnunet_installation/gnunet
RUN git clone --depth 1 https://gnunet.org/git/libmicrohttpd.git /gnunet_installation/libmicrohttpd
WORKDIR /gnunet_installation/libmicrohttpd
RUN autoreconf -fi
RUN ./configure --disable-doc --prefix=/opt/libmicrohttpd
RUN make -j$(nproc || echo -n 1)
RUN make install
WORKDIR /gnunet_installation/gnunet
RUN ./bootstrap
ENV CFLAGS="-g -Wall -O0"
RUN ./configure --prefix=/usr/local/share --disable-documentation --enable-logging-verbose --with-microhttpd=/opt/libmicrohttpd
RUN make -j$(nproc || echo -n 1)
RUN make install
WORKDIR /
RUN mkdir /.config && touch /.config/gnunet.conf
RUN rm -r /gnunet_installation
EXPOSE 7777
#EXPOSE 2086
COPY docker-entrypoint.sh /opt
ENV PATH="/usr/local/share/bin:$PATH"
ENTRYPOINT ["bash", "/opt/docker-entrypoint.sh"]