services: tests: build: context: ../../ dockerfile: Dockerfile.test environment: DB_HOST: db-test DB_PORT: 5432 DB_NAME: nostr_ts_relay_test DB_USER: postgres DB_PASSWORD: postgres DB_MIN_POOL_SIZE: 1 DB_MAX_POOL_SIZE: 2 REDIS_HOST: cache-test REDIS_PORT: 6379 REDIS_USER: default REDIS_PASSWORD: nostr_ts_relay_test NOSTR_CONFIG_DIR: /code volumes: - ../../src:/code/src - ../../test:/code/test - ../../.coverage:/code/.coverage - ../../.test-reports:/code/.test-reports working_dir: /code depends_on: cache-test: condition: service_healthy db-test: condition: service_healthy migrations-test: condition: service_completed_successfully networks: - nostr-ts-relay-test links: - db-test db-test: image: postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: nostr_ts_relay_test networks: - nostr-ts-relay-test healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] timeout: 5s start_period: 5s retries: 0 cache-test: image: redis:7.0.5-alpine3.16 command: redis-server --save 20 1 --loglevel warning --requirepass nostr_ts_relay_test networks: - nostr-ts-relay-test restart: always healthcheck: test: [ "CMD", "redis-cli", "ping", "|", "grep", "PONG" ] interval: 1s timeout: 5s retries: 5 migrations-test: image: node:18-alpine3.16 environment: DB_HOST: db-test DB_PORT: 5432 DB_USER: postgres DB_PASSWORD: postgres DB_NAME: nostr_ts_relay_test entrypoint: - sh - -c - 'cd code && npm install --no-save --quiet knex@2.3.0 pg@8.8.0 && npx knex migrate:latest' volumes: - ../../migrations:/code/migrations - ../../knexfile.js:/code/knexfile.js depends_on: - db-test networks: - nostr-ts-relay-test links: - db-test networks: nostr-ts-relay-test: