version: '3' services: db: container_name: sonixd_db image: postgres:13 volumes: - ${DB_PERSIST_PATH}:/var/lib/postgresql/data environment: - POSTGRES_USER=${DB_USERNAME} - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=${DB_NAME} ports: - '${DB_PORT}:5432' restart: unless-stopped server: container_name: sonixd_server volumes: - ./src/server:/app # Synchronise docker container with local change - /app/node_modules # Avoid re-copying local node_modules. Cache in container. build: context: ./src/server dockerfile: Dockerfile depends_on: - db environment: - APP_BASE_URL=${APP_BASE_URL} - DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@db/${DB_NAME}?schema=public&connection_limit=14&pool_timeout=20 - DATABASE_PORT=${DB_PORT} - DATABASE_SECRET=${DB_SECRET} ports: - '9321:9321' restart: unless-stopped prisma: container_name: sonixd_prisma_studio volumes: - ./src/server/prisma:/app/prisma build: context: ./src/server/prisma dockerfile: Dockerfile depends_on: - db - server environment: - DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@db/${DB_NAME}?schema=public ports: - '5555:5555' restart: unless-stopped