name: ${INFR_PROJECT_NAME} services: postgresql: image: postgres:${INFR_POSTGRESQL_VERSION} container_name: ${INFR_PROJECT_NAME}-${INFR_POSTGRESQL_CONTAINER_NAME} restart: always environment: - POSTGRES_USER=${INFR_POSTGRESQL_POSTGRES_USER} - POSTGRES_PASSWORD=${INFR_POSTGRESQL_POSTGRES_PASSWORD} ports: - ${INFR_POSTGRESQL_POSTGRES_PORT}:5432 volumes: - ./volumes/postgresql/data:/var/lib/postgresql/data networks: - infr healthcheck: test: ["CMD", "pg_isready", "-h", "127.0.0.1", "-p", "5432", "-q", "-U", "${INFR_POSTGRESQL_POSTGRES_USER}"] start_period: 20s interval: 30s retries: 5 timeout: 5s chroma: image: chromadb/chroma:latest container_name: ${INFR_PROJECT_NAME}-${INFR_CHROMA_CONTAINER_NAME} volumes: - ./volumes/chroma/data:/data ports: - ${INFR_CHROMA_PORT}:8000 networks: - infr restart: unless-stopped neo4j: image: neo4j:${INFR_NEO4J_VERSION} container_name: ${INFR_PROJECT_NAME}-${INFR_NEO4J_CONTAINER_NAME} restart: always environment: - TZ=Asia/Shanghai - NEO4J_AUTH=neo4j/${NEO4J_PASSWORD:-graph123} ports: - ${INFR_NEO4J_WEB_HTTP_PORT}:7474 - ${INFR_NEO4J_BOLT_PORT}:7687 volumes: - ./volumes/neo4j/data:/data - ./volumes/neo4j/logs:/logs networks: - infr redis: image: redis:${INFR_REDIS_VERSION} container_name: ${INFR_PROJECT_NAME}-${INFR_REDIS_CONTAINER_NAME} restart: always command: redis-server --requirepass ${INFR_REDIS_REDIS_PASSWORD} ports: - ${INFR_REDIS_REDIS_PORT}:6379 volumes: - ./volumes/redis/data:/data networks: - infr networks: infr: name: ${INFR_PROJECT_NAME} driver: bridge