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
|
MERCHANT_REF=master
|
||||||
LIBEUFIN_REF=master
|
LIBEUFIN_REF=master
|
||||||
GNUNET_TARBALL_URL=https://git-www.taler.net/gnunet.git/snapshot/gnunet-512c42a713e52a2033928a302e445376d3bcb3a7.tar.gz
|
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)
|
# Secrets path (host path mounted into /etc/taler/secrets)
|
||||||
EXCHANGE_SECRETS_PATH=./exchange/secrets
|
EXCHANGE_SECRETS_PATH=./exchange/secrets
|
||||||
|
|
|
||||||
49
Dockerfile
49
Dockerfile
|
|
@ -9,6 +9,8 @@ ARG MERCHANT_REF=master
|
||||||
ARG LIBEUFIN_REF=master
|
ARG LIBEUFIN_REF=master
|
||||||
# Optional tarball URLs (when set, git clone is skipped)
|
# Optional tarball URLs (when set, git clone is skipped)
|
||||||
ARG GNUNET_TARBALL_URL=
|
ARG GNUNET_TARBALL_URL=
|
||||||
|
ARG EXCHANGE_TARBALL_URL=
|
||||||
|
ARG MERCHANT_TARBALL_URL=
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
build-essential git automake libtool pkg-config \
|
build-essential git automake libtool pkg-config \
|
||||||
|
|
@ -62,11 +64,48 @@ RUN set -e; \
|
||||||
./configure --prefix=/usr && make -j$(nproc) && make install
|
./configure --prefix=/usr && make -j$(nproc) && make install
|
||||||
|
|
||||||
# Taler Exchange + Merchant
|
# Taler Exchange + Merchant
|
||||||
RUN git clone --depth 1 --branch "${EXCHANGE_REF}" https://git.taler.net/exchange.git /src/exchange && \
|
RUN set -e; \
|
||||||
cd /src/exchange && ./bootstrap && \
|
# Exchange
|
||||||
./configure --prefix=/usr && make -j$(nproc) && make install && \
|
EXCHANGE_DIR=""; \
|
||||||
git clone --depth 1 --branch "${MERCHANT_REF}" https://git.taler.net/merchant.git /src/merchant && \
|
if ls /vendor/exchange*.tar.gz >/dev/null 2>&1; then \
|
||||||
cd /src/merchant && ./bootstrap && \
|
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
|
./configure --prefix=/usr && make -j$(nproc) && make install
|
||||||
|
|
||||||
# LibEuFin (Bank)
|
# 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.
|
- 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.
|
- 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.
|
- 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
|
## Nützliche Kommandos
|
||||||
- Logs: `docker compose logs -f exchange` (oder bank/merchant/caddy/wordpress).
|
- 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.
|
- 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.
|
- 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.
|
- 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
|
## Useful commands
|
||||||
- Logs: `docker compose logs -f exchange` (or bank/merchant/caddy/wordpress).
|
- 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_REF="${GNUNET_REF:-v0.26.1}" \
|
||||||
--build-arg GNUNET_TARBALL_URL="${GNUNET_TARBALL_URL:-}" \
|
--build-arg GNUNET_TARBALL_URL="${GNUNET_TARBALL_URL:-}" \
|
||||||
--build-arg EXCHANGE_REF="${EXCHANGE_REF:-master}" \
|
--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_REF="${MERCHANT_REF:-master}" \
|
||||||
|
--build-arg MERCHANT_TARBALL_URL="${MERCHANT_TARBALL_URL:-}" \
|
||||||
--build-arg LIBEUFIN_REF="${LIBEUFIN_REF:-master}" \
|
--build-arg LIBEUFIN_REF="${LIBEUFIN_REF:-master}" \
|
||||||
-t "${IMAGE_TAG}" .
|
-t "${IMAGE_TAG}" .
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue