Support vendor tarballs for exchange/merchant; pass tarball args
This commit is contained in:
parent
076d8a76f5
commit
30c6b94d8c
5 changed files with 50 additions and 7 deletions
|
|
@ -45,6 +45,8 @@ EXCHANGE_REF=master
|
|||
MERCHANT_REF=master
|
||||
LIBEUFIN_REF=master
|
||||
GNUNET_TARBALL_URL=https://git-www.taler.net/gnunet.git/snapshot/gnunet-512c42a713e52a2033928a302e445376d3bcb3a7.tar.gz
|
||||
EXCHANGE_TARBALL_URL=
|
||||
MERCHANT_TARBALL_URL=
|
||||
|
||||
# Secrets path (host path mounted into /etc/taler/secrets)
|
||||
EXCHANGE_SECRETS_PATH=./exchange/secrets
|
||||
|
|
|
|||
49
Dockerfile
49
Dockerfile
|
|
@ -9,6 +9,8 @@ ARG MERCHANT_REF=master
|
|||
ARG LIBEUFIN_REF=master
|
||||
# Optional tarball URLs (when set, git clone is skipped)
|
||||
ARG GNUNET_TARBALL_URL=
|
||||
ARG EXCHANGE_TARBALL_URL=
|
||||
ARG MERCHANT_TARBALL_URL=
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential git automake libtool pkg-config \
|
||||
|
|
@ -62,11 +64,48 @@ RUN set -e; \
|
|||
./configure --prefix=/usr && make -j$(nproc) && make install
|
||||
|
||||
# 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 && \
|
||||
RUN set -e; \
|
||||
# Exchange
|
||||
EXCHANGE_DIR=""; \
|
||||
if ls /vendor/exchange*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/exchange*.tar.gz | head -1)"; \
|
||||
echo "Using local Exchange tarball from ${LOCAL_TARBALL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
cp "${LOCAL_TARBALL}" exchange.tar.gz; \
|
||||
tar xzf exchange.tar.gz; \
|
||||
EXCHANGE_DIR="$(ls -d exchange-* | head -1)"; \
|
||||
elif [ -n "${EXCHANGE_TARBALL_URL}" ]; then \
|
||||
echo "Fetching Exchange tarball ${EXCHANGE_TARBALL_URL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
curl -L "${EXCHANGE_TARBALL_URL}" -o exchange.tar.gz; \
|
||||
tar xzf exchange.tar.gz; \
|
||||
EXCHANGE_DIR="$(ls -d exchange-* | head -1)"; \
|
||||
else \
|
||||
git clone --depth 1 --branch "${EXCHANGE_REF}" https://git.taler.net/exchange.git /src/exchange; \
|
||||
EXCHANGE_DIR="/src/exchange"; \
|
||||
fi; \
|
||||
cd "${EXCHANGE_DIR}" && ./bootstrap && \
|
||||
./configure --prefix=/usr && make -j$(nproc) && make install; \
|
||||
# Merchant
|
||||
MERCHANT_DIR=""; \
|
||||
if ls /vendor/merchant*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/merchant*.tar.gz | head -1)"; \
|
||||
echo "Using local Merchant tarball from ${LOCAL_TARBALL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
cp "${LOCAL_TARBALL}" merchant.tar.gz; \
|
||||
tar xzf merchant.tar.gz; \
|
||||
MERCHANT_DIR="$(ls -d merchant-* | head -1)"; \
|
||||
elif [ -n "${MERCHANT_TARBALL_URL}" ]; then \
|
||||
echo "Fetching Merchant tarball ${MERCHANT_TARBALL_URL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
curl -L "${MERCHANT_TARBALL_URL}" -o merchant.tar.gz; \
|
||||
tar xzf merchant.tar.gz; \
|
||||
MERCHANT_DIR="$(ls -d merchant-* | head -1)"; \
|
||||
else \
|
||||
git clone --depth 1 --branch "${MERCHANT_REF}" https://git.taler.net/merchant.git /src/merchant; \
|
||||
MERCHANT_DIR="/src/merchant"; \
|
||||
fi; \
|
||||
cd "${MERCHANT_DIR}" && ./bootstrap && \
|
||||
./configure --prefix=/usr && make -j$(nproc) && make install
|
||||
|
||||
# LibEuFin (Bank)
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ Container-Stack für GNU Taler (Exchange, Merchant, LibEuFin Bank) mit optionale
|
|||
- Bei eigener CA `EXCHANGE_CURL_OPTS="-k"` setzen, wenn der Offline-Job `/keys` über HTTPS abfragt.
|
||||
- Nach Passwortänderungen in `.env` ist kein manuelles SQL-Rendering nötig; das Init-Skript liest sie beim Start.
|
||||
- Release-Refs/Tarballs: Tags/Commits unter `https://git.taler.net/{gnunet,exchange,merchant,libeufin}.git/` ansehen (Tarballs via `.../snapshot/<tag>.tar.gz`) und `*_REF`/`GNUNET_TARBALL_URL` entsprechend setzen.
|
||||
- Offline-Tarball: Lege ein GNUnet-Tarball unter `vendor/` (z.B. `gnunet-*.tar.gz`) ab, um es beim Build zu nutzen; bei unvollständigem Tarball fällt der Build auf Git zurück.
|
||||
- Offline-Tarballs: Lege Tarballs unter `vendor/` ab (`gnunet-*.tar.gz`, `exchange-*.tar.gz`, `merchant-*.tar.gz`); bei unvollständigem Tarball fällt der Build auf Git zurück.
|
||||
|
||||
## Nützliche Kommandos
|
||||
- Logs: `docker compose logs -f exchange` (oder bank/merchant/caddy/wordpress).
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ Container stack for GNU Taler (Exchange, Merchant, LibEuFin Bank) with optional
|
|||
- With custom CAs, set `EXCHANGE_CURL_OPTS="-k"` if the offline job needs to curl `/keys` over HTTPS.
|
||||
- After changing DB passwords in `.env`, no manual SQL rendering is needed—the init script reads them at container start.
|
||||
- Release refs/tarballs: Browse tags/commits at `https://git.taler.net/{gnunet,exchange,merchant,libeufin}.git/` (Tarballs via `.../snapshot/<tag>.tar.gz`) and set `*_REF`/`GNUNET_TARBALL_URL` accordingly.
|
||||
- Offline tarball drop-in: place a GNUnet tarball under `vendor/` (e.g., `gnunet-*.tar.gz`); the build picks the first match and falls back to git if the tarball looks incomplete.
|
||||
- Offline tarball drop-in: place tarballs under `vendor/` (`gnunet-*.tar.gz`, `exchange-*.tar.gz`, `merchant-*.tar.gz`); the build picks the first match and falls back to git if incomplete.
|
||||
|
||||
## Useful commands
|
||||
- Logs: `docker compose logs -f exchange` (or bank/merchant/caddy/wordpress).
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ docker build \
|
|||
--build-arg GNUNET_REF="${GNUNET_REF:-v0.26.1}" \
|
||||
--build-arg GNUNET_TARBALL_URL="${GNUNET_TARBALL_URL:-}" \
|
||||
--build-arg EXCHANGE_REF="${EXCHANGE_REF:-master}" \
|
||||
--build-arg EXCHANGE_TARBALL_URL="${EXCHANGE_TARBALL_URL:-}" \
|
||||
--build-arg MERCHANT_REF="${MERCHANT_REF:-master}" \
|
||||
--build-arg MERCHANT_TARBALL_URL="${MERCHANT_TARBALL_URL:-}" \
|
||||
--build-arg LIBEUFIN_REF="${LIBEUFIN_REF:-master}" \
|
||||
-t "${IMAGE_TAG}" .
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue