From 64f0c69933f67a5f78c14b30169c9310fc78bd4a Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 5 Jul 2023 19:07:30 +0200 Subject: sandcastle: structure base image with stages --- sandcastle/images/base/Dockerfile | 51 +++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/sandcastle/images/base/Dockerfile b/sandcastle/images/base/Dockerfile index 6d687f6..414445d 100644 --- a/sandcastle/images/base/Dockerfile +++ b/sandcastle/images/base/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bookworm +FROM debian:bookworm as base-system RUN apt-get update RUN apt-get install -y \ @@ -44,35 +44,27 @@ RUN apt-get install -y \ # a venv or per-user installation of the package. RUN pip3 install --break-system-packages requests click poetry uwsgi htmlark +FROM base-system as mhd COPY buildconfig/tags.sh tags.sh - RUN . /tags.sh && git clone git://git.gnunet.org/libmicrohttpd \ --branch ${TAG_LIBMHD:-master} -RUN . /tags.sh && git clone git://git.gnunet.org/gnunet \ - --branch ${TAG_GNUNET:-master} -RUN . /tags.sh && git clone git://git.taler.net/exchange \ - --branch ${TAG_EXCHANGE:-master} -RUN . /tags.sh && git clone git://git.taler.net/merchant \ - --branch ${TAG_MERCHANT:-master} -RUN . /tags.sh && git clone git://git.taler.net/libeufin \ - --branch ${TAG_LIBEUFIN:-master} -RUN . /tags.sh && git clone git://git.taler.net/taler-merchant-demos \ - --branch ${TAG_MERCHANT_DEMOS:-master} -RUN . /tags.sh && git clone git://git.taler.net/wallet-core \ - --branch ${TAG_WALLET:-master} -RUN . /tags.sh && git clone git://git.taler.net/sync \ - --branch ${TAG_SYNC:-master} - WORKDIR /libmicrohttpd RUN ./bootstrap RUN ./configure --disable-doc RUN make install +FROM mhd AS gnunet +RUN . /tags.sh && git clone git://git.gnunet.org/gnunet \ + --branch ${TAG_GNUNET:-master} WORKDIR /gnunet RUN ./bootstrap RUN ./configure --enable-logging=verbose --disable-documentation RUN make install +WORKDIR / +FROM gnunet AS exchange +RUN . /tags.sh && git clone git://git.taler.net/exchange \ + --branch ${TAG_EXCHANGE:-master} WORKDIR /exchange RUN if . /tags.sh && test "${TAG_EXCHANGE:-}" = "v0.9.0"; then \ # Init Gana and checkout the v0.9.0-compatible commit. @@ -88,43 +80,60 @@ fi RUN ./bootstrap RUN ./configure CFLAGS="-ggdb -O0" --enable-logging=verbose --disable-doc RUN make install +WORKDIR / +FROM exchange AS merchant +RUN . /tags.sh && git clone git://git.taler.net/merchant \ + --branch ${TAG_MERCHANT:-master} WORKDIR /merchant RUN ./bootstrap RUN ./configure CFLAGS="-ggdb -O0" \ --enable-logging=verbose \ --disable-doc RUN make install +WORKDIR / +FROM base-system AS libeufin +RUN . /tags.sh && git clone git://git.taler.net/libeufin \ + --branch ${TAG_LIBEUFIN:-master} WORKDIR /libeufin RUN ./bootstrap RUN ./configure RUN make install +WORKDIR / +FROM base-system AS taler-merchant-demos +RUN . /tags.sh && git clone git://git.taler.net/taler-merchant-demos \ + --branch ${TAG_MERCHANT_DEMOS:-master} WORKDIR /taler-merchant-demos RUN ./bootstrap RUN ./configure RUN make install +WORKDIR / +FROM base-system AS wallet-core +RUN . /tags.sh && git clone git://git.taler.net/wallet-core \ + --branch ${TAG_WALLET:-master} RUN npm install -g pnpm@^7.0.0 - WORKDIR /wallet-core RUN ./bootstrap - WORKDIR ./packages/demobank-ui RUN ./configure RUN make install - # Install CLI to provide integration tests. WORKDIR ../taler-wallet-cli RUN ./configure RUN make install +WORKDIR / + +FROM exchange AS sync +RUN . /tags.sh && git clone git://git.taler.net/sync \ + --branch ${TAG_SYNC:-master} WORKDIR /sync RUN ./bootstrap RUN ./configure CFLAGS="-ggdb -O0" \ --enable-logging=verbose \ --disable-doc RUN make install - WORKDIR / -- cgit v1.2.3