version: '3' # it's a constant volumes: talerdata: talerlogs: services: talerdb: build: ./images/postgres image: sandcastle_talerdb ports: - 127.0.0.1:${TALER_DB_PORT}:5432 volumes: - talerlogs:/logs - talerdata:/var/lib/postgresql/data/ - ./config:/config:ro environment: # root is the only role existing in the DBMS. That # matches the role used by other containers when # they connect to the database. POSTGRES_USER: root # this changes to the password used by other # containers to connect here. This definition # only makes the init logic happy. POSTGRES_PASSWORD: nonce POSTGRES_HOST_AUTH_METHOD: scram-sha-256 # the final "/postgresql" is used to create # a "postgresql" subfolder in the data volume. PGDATA: /var/lib/postgresql/data/postgresql restart: always exchange: build: ./images/exchange image: sandcastle_exchange environment: - TOS_AUTHOR="Taler Systems SA" - TOS_COPYRIGHT="Taler Systems SA" - TOS_PATH=/usr/local/share/taler/terms - TOS_INPUT=exchange-tos-v0 - TOS_LANGUAGE=en - TOS_OUTPUT=/usr/local/share/taler/terms/ - TOS_PAPER=a4 - TOS_TITLE="GNU Taler terms of service" depends_on: - talerdb ports: - 127.0.0.1:${TALER_EXCHANGE_PORT}:80 volumes: - talerlogs:/logs - talerdata:/data - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro restart: always merchant: build: ./images/merchant image: sandcastle_merchant depends_on: - talerdb ports: - 127.0.0.1:${TALER_MERCHANT_PORT}:80 # backend - 127.0.0.1:${TALER_BLOG_PORT}:8080 # blog - 127.0.0.1:${TALER_DONATIONS_PORT}:8081 # donations - 127.0.0.1:${TALER_SURVEY_PORT}:8082 # survey - 127.0.0.1:${TALER_LANDING_PORT}:8083 # landing - 127.0.0.1:${TALER_SYNC_PORT}:8084 # sync volumes: - talerlogs:/logs - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro # uwsgi allocates memory based on available file descriptors, so be # conservative here ulimits: nproc: 5000 nofile: soft: 2000 hard: 4000 restart: always bank: build: ./images/libeufin ports: - 127.0.0.1:${LIBEUFIN_BANK_PORT}:15000 # libeufin-bank - 127.0.0.1:${LIBEUFIN_FRONTEND_PORT}:80 # Nginx serving the SPA volumes: - talerlogs:/logs - talerdata:/data - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro restart: always