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: ./config target: /etc/taler 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: ./config target: /etc/taler 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: ./config target: /etc/taler 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: ./config target: /etc/taler 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: ./config target: /etc/taler 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: ./config target: /etc/taler 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