View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010163 | Taler | merchant backend | public | 2025-07-08 23:12 | 2025-07-08 23:12 |
| Reporter | hank | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | always |
| Status | new | Resolution | open | ||
| Product Version | 1.0 | ||||
| Summary | 0010163: Dockerfile, docker-compose.yaml and Kubernetes files | ||||
| Description | Dockerfile would benefit from pinning to a *known stable combination* of merchant, exchange and gnunet. e.g. (example, doesn't work): RUN git clone --branch v0.24.2 --recurse-submodules git://git.gnunet.org/gnunet.git RUN git clone --branch v1.0.12 --recurse-submodules git://git.taler.net/exchange.git RUN git clone --branch v1.0.3 --recurse-submodules git://git.taler.net/merchant.git | ||||
| Tags | No tags attached. | ||||
| Attached Files | docker-compose.yaml (3,330 bytes)
name: taler
services:
postgres:
image: postgres:17-alpine
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: taler-merchant
volumes:
- postgresql_socket:/var/run/postgresql
- db-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready --dbname=postgres://postgres:password@/postgres
interval: 10s
timeout: 1s
retries: 5
start_period: 5s
start_interval: 1s
init-db:
image: taler-merchant:latest
command: taler-merchant-dbinit -c /etc/taler/taler.conf
environment:
PGUSER: postgres
PGPASSWORD: password
volumes:
- type: bind
source: ./taler.conf
target: /etc/taler/taler.conf
read_only: true
- postgresql_socket:/var/run/postgresql
depends_on:
postgres:
condition: service_healthy
httpd:
ports:
- 8080:8080
image: taler-merchant:latest
command: taler-merchant-httpd -c /etc/taler/taler.conf
environment:
PGUSER: postgres
PGPASSWORD: password
volumes:
- type: bind
source: ./taler.conf
target: /etc/taler/taler.conf
read_only: true
- postgresql_socket:/var/run/postgresql
depends_on:
postgres:
condition: service_healthy
init-db:
condition: service_completed_successfully
webhook:
image: taler-merchant:latest
command: taler-merchant-webhook -c /etc/taler/taler.conf
environment:
PGUSER: postgres
PGPASSWORD: password
volumes:
- type: bind
source: ./taler.conf
target: /etc/taler/taler.conf
read_only: true
- postgresql_socket:/var/run/postgresql
depends_on:
postgres:
condition: service_healthy
init-db:
condition: service_completed_successfully
wirewatch:
image: taler-merchant:latest
command: taler-merchant-wirewatch -c /etc/taler/taler.conf
environment:
PGUSER: postgres
PGPASSWORD: password
volumes:
- type: bind
source: ./taler.conf
target: /etc/taler/taler.conf
read_only: true
- postgresql_socket:/var/run/postgresql
depends_on:
postgres:
condition: service_healthy
init-db:
condition: service_completed_successfully
depositcheck:
image: taler-merchant:latest
command: taler-merchant-depositcheck -c /etc/taler/taler.conf
environment:
PGUSER: postgres
PGPASSWORD: password
volumes:
- type: bind
source: ./taler.conf
target: /etc/taler/taler.conf
read_only: true
- postgresql_socket:/var/run/postgresql
depends_on:
postgres:
condition: service_healthy
init-db:
condition: service_completed_successfully
exchangekeyupdate:
image: taler-merchant:latest
command: taler-merchant-exchangekeyupdate -c /etc/taler/taler.conf
environment:
PGUSER: postgres
PGPASSWORD: password
volumes:
- type: bind
source: ./taler.conf
target: /etc/taler/taler.conf
read_only: true
- postgresql_socket:/var/run/postgresql
depends_on:
postgres:
condition: service_healthy
init-db:
condition: service_completed_successfully
volumes:
db-data:
postgresql_socket:
driver: local
Dockerfile (1,451 bytes)
FROM debian:bookworm AS build RUN apt-get update RUN apt-get -y install git pkg-config jq meson recutils autopoint texinfo RUN apt-get -y install libqrencode-dev libsqlite3-dev libltdl-dev libunistring-dev libsodium-dev libargon2-dev libcurl4-gnutls-dev libgcrypt20-dev libjansson-dev libpq-dev libmicrohttpd-dev zlib1g-dev RUN apt-get -y install python3-jinja2 postgresql-client-15 RUN mkdir /build WORKDIR /build RUN git clone --branch master --recurse-submodules git://git.gnunet.org/gnunet.git RUN git clone --branch master --recurse-submodules git://git.taler.net/exchange.git RUN git clone --branch master --recurse-submodules git://git.taler.net/merchant.git WORKDIR /build/gnunet RUN ./configure --disable-documentation RUN make RUN make install RUN ldconfig WORKDIR /build/exchange RUN ./bootstrap RUN ./configure --with-gnunet=/usr/local RUN make RUN make install RUN ldconfig WORKDIR /build/merchant RUN ./bootstrap RUN ./configure --with-exchange=/usr/local --with-gnunet=/usr/local RUN make RUN make install RUN ldconfig FROM debian:bookworm RUN apt-get update RUN apt-get -y install libqrencode4 libsqlite3-0 libltdl7 libunistring2 libsodium23 libargon2-1 libcurl3-gnutls libgcrypt20 libjansson4 libpq5 libmicrohttpd12 zlib1g RUN apt-get -y install postgresql-client-15 COPY --from=build /usr/local/bin /usr/local/bin COPY --from=build /usr/local/lib /usr/local/lib COPY --from=build /usr/local/share /usr/local/share RUN ldconfig | ||||