Add sync service and fix tarball detection for taler-exchange/merchant
This commit is contained in:
parent
9543a56982
commit
2121a7763a
5 changed files with 97 additions and 5 deletions
57
Dockerfile
57
Dockerfile
|
|
@ -7,11 +7,13 @@ ARG GNUNET_REF=v0.26.1
|
|||
ARG EXCHANGE_REF=master
|
||||
ARG MERCHANT_REF=master
|
||||
ARG LIBEUFIN_REF=master
|
||||
ARG SYNC_REF=master
|
||||
# Optional tarball URLs (when set, git clone is skipped)
|
||||
ARG GNUNET_TARBALL_URL=
|
||||
ARG EXCHANGE_TARBALL_URL=
|
||||
ARG MERCHANT_TARBALL_URL=
|
||||
ARG LIBEUFIN_TARBALL_URL=
|
||||
ARG SYNC_TARBALL_URL=
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential git automake autoconf autopoint libtool pkg-config \
|
||||
|
|
@ -69,8 +71,8 @@ RUN set -e; \
|
|||
# Exchange
|
||||
EXCHANGE_DIR=""; \
|
||||
EXCHANGE_TAR=0; \
|
||||
if ls /vendor/exchange*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/exchange*.tar.gz | head -1)"; \
|
||||
if ls /vendor/taler-exchange*.tar.gz /vendor/exchange*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/taler-exchange*.tar.gz /vendor/exchange*.tar.gz 2>/dev/null | head -1)"; \
|
||||
echo "Using local Exchange tarball from ${LOCAL_TARBALL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
cp "${LOCAL_TARBALL}" exchange.tar.gz; \
|
||||
|
|
@ -114,8 +116,8 @@ RUN set -e; \
|
|||
cd "${EXCHANGE_DIR}" && env GNUNET_PREFIX=/usr GIT_CONFIG_NOSYSTEM=1 GIT_DIR= GIT_WORK_TREE=. ./configure --prefix=/usr && make -j$(nproc) && make install; \
|
||||
# Merchant
|
||||
MERCHANT_DIR=""; MERCHANT_TAR=0; \
|
||||
if ls /vendor/merchant*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/merchant*.tar.gz | head -1)"; \
|
||||
if ls /vendor/taler-merchant*.tar.gz /vendor/merchant*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/taler-merchant*.tar.gz /vendor/merchant*.tar.gz 2>/dev/null | head -1)"; \
|
||||
echo "Using local Merchant tarball from ${LOCAL_TARBALL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
cp "${LOCAL_TARBALL}" merchant.tar.gz; \
|
||||
|
|
@ -181,6 +183,53 @@ RUN set -e; \
|
|||
cd "${LIBEUFIN_DIR}" && ./bootstrap && \
|
||||
./configure --prefix=/usr && make -j$(nproc) && make install
|
||||
|
||||
# Taler Sync (optional wallet backup service)
|
||||
RUN set -e; \
|
||||
SYNC_DIR=""; SYNC_TAR=0; \
|
||||
if ls /vendor/sync*.tar.gz >/dev/null 2>&1; then \
|
||||
LOCAL_TARBALL="$(ls /vendor/sync*.tar.gz | head -1)"; \
|
||||
echo "Using local Sync tarball from ${LOCAL_TARBALL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
cp "${LOCAL_TARBALL}" sync.tar.gz; \
|
||||
tar xzf sync.tar.gz; \
|
||||
SYNC_DIR="$(ls -d sync-* | head -1)"; \
|
||||
SYNC_TAR=1; \
|
||||
elif [ -n "${SYNC_TARBALL_URL}" ]; then \
|
||||
echo "Fetching Sync tarball ${SYNC_TARBALL_URL}"; \
|
||||
mkdir -p /src && cd /src; \
|
||||
curl -L "${SYNC_TARBALL_URL}" -o sync.tar.gz; \
|
||||
tar xzf sync.tar.gz; \
|
||||
SYNC_DIR="$(ls -d sync-* | head -1)"; \
|
||||
SYNC_TAR=1; \
|
||||
else \
|
||||
git clone --depth 1 --branch "${SYNC_REF}" https://git.taler.net/sync.git /src/sync; \
|
||||
SYNC_DIR="/src/sync"; \
|
||||
fi; \
|
||||
if [ "${SYNC_TAR}" = "1" ]; then \
|
||||
if [ -f "${SYNC_DIR}/configure" ]; then \
|
||||
echo "Using existing configure for Sync tarball"; \
|
||||
else \
|
||||
set +e; \
|
||||
(cd "${SYNC_DIR}" && autoreconf -fi); \
|
||||
rc=$?; \
|
||||
set -e; \
|
||||
if [ $rc -ne 0 ]; then \
|
||||
echo "Autoreconf failed for Sync tarball; falling back to git clone ${SYNC_REF}"; \
|
||||
rm -rf "${SYNC_DIR}"; \
|
||||
git clone --depth 1 --branch "${SYNC_REF}" https://git.taler.net/sync.git /src/sync; \
|
||||
SYNC_DIR="/src/sync"; \
|
||||
cd "${SYNC_DIR}" && env GNUNET_PREFIX=/usr ./bootstrap; \
|
||||
fi; \
|
||||
fi; \
|
||||
else \
|
||||
if [ ! -f "${SYNC_DIR}/configure" ]; then \
|
||||
cd "${SYNC_DIR}" && env GNUNET_PREFIX=/usr ./bootstrap; \
|
||||
else \
|
||||
echo "Skipping bootstrap for Sync (configure present)"; \
|
||||
fi; \
|
||||
fi; \
|
||||
cd "${SYNC_DIR}" && env GNUNET_PREFIX=/usr GIT_CONFIG_NOSYSTEM=1 GIT_DIR= GIT_WORK_TREE=. ./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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue