services: db: image: postgres:14 volumes: - database:/var/lib/postgresql/data environment: - POSTGRES_DB=werkout - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 web: build: . volumes: - .:/code - /code/werkout-frontend/node_modules - /code/werkout-frontend/.next ports: - "8001:8000" - "3010:3000" environment: - POSTGRES_NAME=werkout - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres depends_on: db: condition: service_healthy links: - db redis: image: redis:alpine celery: restart: always build: context: . command: celery -A werkout_api worker -l info volumes: - .:/code environment: - DB_HOST=db - DB_NAME=werkout - DB_USER=postgres - DB_PASS=postgres depends_on: - db - redis - web volumes: database: