FROM debian:sid ENV DEBIAN_FRONTEND=noninteractive # Pin refs (branch/tag/commit) for shallow clones; adjust as needed. ARG GNUNET_REF=v0.26.1 ARG EXCHANGE_REF=master ARG MERCHANT_REF=master ARG LIBEUFIN_REF=master # Optional tarball URLs (when set, git clone is skipped) ARG GNUNET_TARBALL_URL= RUN apt-get update && apt-get install -y \ build-essential git automake libtool pkg-config \ libgnutls28-dev libjansson-dev libsqlite3-dev \ postgresql-client curl gnupg gettext-base \ openjdk-17-jdk maven \ && rm -rf /var/lib/apt/lists/* # GNUnet (falls nicht schon systemweit neu genug) RUN if [ -n "${GNUNET_TARBALL_URL}" ]; then \ mkdir -p /src && cd /src && \ curl -L "${GNUNET_TARBALL_URL}" -o gnunet.tar.gz && \ tar xzf gnunet.tar.gz && \ cd gnunet-* && ./bootstrap && \ ./configure --prefix=/usr && make -j$(nproc) && make install; \ else \ git clone --depth 1 --branch "${GNUNET_REF}" https://git.taler.net/gnunet.git /src/gnunet && \ cd /src/gnunet && ./bootstrap && \ ./configure --prefix=/usr && make -j$(nproc) && make install; \ fi # Taler Exchange + Merchant RUN git clone --depth 1 --branch "${EXCHANGE_REF}" https://git.taler.net/exchange.git /src/exchange && \ cd /src/exchange && ./bootstrap && \ ./configure --prefix=/usr && make -j$(nproc) && make install && \ git clone --depth 1 --branch "${MERCHANT_REF}" https://git.taler.net/merchant.git /src/merchant && \ cd /src/merchant && ./bootstrap && \ ./configure --prefix=/usr && make -j$(nproc) && make install # LibEuFin (Bank) RUN git clone --depth 1 --branch "${LIBEUFIN_REF}" https://git.taler.net/libeufin.git /src/libeufin && \ cd /src/libeufin && ./bootstrap && \ ./configure --prefix=/usr && make -j$(nproc) && make install # Shared entrypoint for dbinit + service start COPY entrypoints/with-dbinit.sh /usr/local/bin/with-dbinit.sh COPY scripts/enable-exchange-account.sh /usr/local/bin/enable-exchange-account.sh RUN chmod +x /usr/local/bin/with-dbinit.sh /usr/local/bin/enable-exchange-account.sh