From d837b84241ed01cf42e95c95948224cdbf285e18 Mon Sep 17 00:00:00 2001 From: dvn Date: Thu, 2 Aug 2018 14:33:18 +0200 Subject: docker: move Dockerfile to root of repo This is because of a limitation of Docker, which requires that you run the Dockerfile from the directory in which you will copy in data. Moving it to the root of the repo allows us to COPY in the code instead of doing a 'git pull' from the container. --- Dockerfile | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ docker/Dockerfile | 102 ------------------------------------------------------ docker/README.md | 8 +++++ 3 files changed, 110 insertions(+), 102 deletions(-) create mode 100644 Dockerfile delete mode 100644 docker/Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..4fdd91f60 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,102 @@ +FROM ubuntu:18.04 + +ENV DEBIAN_FRONTEND noninteractive + +# Install tools and dependencies +RUN apt-get update && \ + apt-get -y install --no-install-recommends \ + ca-certificates \ + libsasl2-modules \ + git \ + automake \ + autopoint \ + autoconf \ + texinfo \ + libtool \ + libltdl-dev \ + libgpg-error-dev \ + libidn11-dev \ + libunistring-dev \ + libglpk-dev \ + libbluetooth-dev \ + libextractor-dev \ + libmicrohttpd-dev \ + libgnutls28-dev \ + libgcrypt20-dev \ + libpq-dev \ + libsqlite3-dev && \ + apt-get clean all && \ + apt-get -y autoremove && \ + rm -rf \ + /var/lib/apt/lists/* \ + /tmp/* + +# Install GNUrl +ENV GNURL_GIT_URL https://git.taler.net/gnurl.git +ENV GNURL_GIT_BRANCH gnurl-7.57.0 + +RUN git clone $GNURL_GIT_URL \ + --branch $GNURL_GIT_BRANCH \ + --depth=1 \ + --quiet && \ + cd /gnurl && \ + autoreconf -i && \ + ./configure \ + --enable-ipv6 \ + --with-gnutls \ + --without-libssh2 \ + --without-libmetalink \ + --without-winidn \ + --without-librtmp \ + --without-nghttp2 \ + --without-nss \ + --without-cyassl \ + --without-polarssl \ + --without-ssl \ + --without-winssl \ + --without-darwinssl \ + --disable-sspi \ + --disable-ntlm-wb \ + --disable-ldap \ + --disable-rtsp \ + --disable-dict \ + --disable-telnet \ + --disable-tftp \ + --disable-pop3 \ + --disable-imap \ + --disable-smtp \ + --disable-gopher \ + --disable-file \ + --disable-ftp \ + --disable-smb && \ + make install && \ + cd - && \ + rm -fr /gnurl + +# Install GNUnet +ENV GNUNET_PREFIX /usr/local/gnunet +ENV CFLAGS '-g -Wall -O0' + +COPY . /gnunet + +RUN cd /gnunet && \ + ./bootstrap && \ + ./configure \ + --with-nssdir=/lib \ + --prefix="$GNUNET_PREFIX" \ + --enable-logging=verbose && \ + make -j3 && \ + make install && \ + ldconfig && \ + cd - && \ + rm -fr /gnunet + +# Configure GNUnet +COPY docker/gnunet.conf /etc/gnunet.conf +COPY docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint +RUN chmod 755 /usr/local/bin/docker-entrypoint + +ENV LOCAL_PORT_RANGE='40001 40200' +ENV PATH "$GNUNET_PREFIX/bin:/usr/local/bin:$PATH" + +ENTRYPOINT ["docker-entrypoint"] diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index c91ce4210..000000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,102 +0,0 @@ -FROM ubuntu:18.04 - -ENV DEBIAN_FRONTEND noninteractive - -# Install tools and dependencies -RUN apt-get update && \ - apt-get -y install --no-install-recommends \ - ca-certificates \ - libsasl2-modules \ - git \ - automake \ - autopoint \ - autoconf \ - texinfo \ - libtool \ - libltdl-dev \ - libgpg-error-dev \ - libidn11-dev \ - libunistring-dev \ - libglpk-dev \ - libbluetooth-dev \ - libextractor-dev \ - libmicrohttpd-dev \ - libgnutls28-dev \ - libgcrypt20-dev \ - libpq-dev \ - libsqlite3-dev && \ - apt-get clean all && \ - apt-get -y autoremove && \ - rm -rf \ - /var/lib/apt/lists/* \ - /tmp/* - -# Install GNUrl -ENV GNURL_GIT_URL https://git.taler.net/gnurl.git -ENV GNURL_GIT_BRANCH gnurl-7.57.0 - -RUN git clone $GNURL_GIT_URL \ - --branch $GNURL_GIT_BRANCH \ - --depth=1 \ - --quiet && \ - cd /gnurl && \ - autoreconf -i && \ - ./configure \ - --enable-ipv6 \ - --with-gnutls \ - --without-libssh2 \ - --without-libmetalink \ - --without-winidn \ - --without-librtmp \ - --without-nghttp2 \ - --without-nss \ - --without-cyassl \ - --without-polarssl \ - --without-ssl \ - --without-winssl \ - --without-darwinssl \ - --disable-sspi \ - --disable-ntlm-wb \ - --disable-ldap \ - --disable-rtsp \ - --disable-dict \ - --disable-telnet \ - --disable-tftp \ - --disable-pop3 \ - --disable-imap \ - --disable-smtp \ - --disable-gopher \ - --disable-file \ - --disable-ftp \ - --disable-smb && \ - make install && \ - cd - && \ - rm -fr /gnurl - -# Install GNUnet -ENV GNUNET_PREFIX /usr/local/gnunet -ENV CFLAGS '-g -Wall -O0' - -COPY ../ /gnunet - -RUN cd /gnunet && \ - ./bootstrap && \ - ./configure \ - --with-nssdir=/lib \ - --prefix="$GNUNET_PREFIX" \ - --enable-logging=verbose && \ - make -j3 && \ - make install && \ - ldconfig && \ - cd - && \ - rm -fr /gnunet - -# Configure GNUnet -COPY gnunet.conf /etc/gnunet.conf -COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint -RUN chmod 755 /usr/local/bin/docker-entrypoint - -ENV LOCAL_PORT_RANGE='40001 40200' -ENV PATH "$GNUNET_PREFIX/bin:/usr/local/bin:$PATH" - -ENTRYPOINT ["docker-entrypoint"] diff --git a/docker/README.md b/docker/README.md index 4e0e6b951..ce05012fc 100644 --- a/docker/README.md +++ b/docker/README.md @@ -7,6 +7,14 @@ A Dockerfile (and maybe later docker-compose.yml) for getting a running GNUnet d ## Build it This will take quite a while and will consume a bit of data. +First you need to go to the root of this repo. + +```bash +cd .. +``` + +Now you can build the image. + ```bash docker build -t gnunet . ``` -- cgit v1.2.3