services: client: build: context: . dockerfile: ./Dockerfile-Dev command: ["npm", "run", "client:dev:docker"] depends_on: - server environment: - BASE_URL=http://server:3000 networks: - habitica ports: - "5173:5173" volumes: - .:/usr/src/habitica - /usr/src/habitica/node_modules - /usr/src/habitica/website/client/node_modules server: build: context: . dockerfile: ./Dockerfile-Dev command: ["npm", "start"] depends_on: mongo: condition: service_healthy environment: - NODE_DB_URI=mongodb://mongo/habitrpg networks: - habitica ports: - "3000:3000" volumes: - .:/usr/src/habitica - /usr/src/habitica/node_modules mongo: image: "mongo:7.0" container_name: "habitica-mongodb" networks: - habitica hostname: "mongodb" ports: - "27017:27017" restart: "unless-stopped" volumes: - "./mongodb-data-docker:/data/db" entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs" ] healthcheck: test: echo "try { rs.status() } catch (err) { rs.initiate() }" | mongosh --port 27017 --quiet interval: 10s timeout: 30s start_period: 0s retries: 30 networks: habitica: driver: bridge