version: '3.8' services: db: image: postgres:15 environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} volumes: - db_data:/var/lib/postgresql/data - ./migrations:/docker-entrypoint-initdb.d ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"] interval: 5s timeout: 5s retries: 5 deploy: resources: limits: cpus: '0.5' memory: 512M adminer: image: adminer restart: always ports: - "8081:8080" depends_on: db: condition: service_healthy app: build: . environment: DB_HOST: db DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_NAME: ${DB_NAME} DB_PORT: "5432" LOG_LEVEL: "debug" ports: - "8080:8080" depends_on: db: condition: service_healthy deploy: resources: limits: cpus: '1' memory: 1G db_dev: image: postgres:15 environment: POSTGRES_USER: dev_user POSTGRES_PASSWORD: dev_pass POSTGRES_DB: matching_dev ports: - "5433:5432" volumes: - pgdata_dev:/var/lib/postgresql/data - ./migrations:/docker-entrypoint-initdb.d healthcheck: test: ["CMD-SHELL", "pg_isready -U dev_user -d matching_dev"] interval: 5s timeout: 5s retries: 5 volumes: db_data: pgdata_dev: networks: default: name: matching_network driver: bridge