volumes: web: mongo: redis: mongo-init-replica: services: web: image: sharelatex/sharelatex:4.2.3@sha256:6c6498de22775f1227eed7cf472c764aa851f0fe5b9e640d989ea8a90837159e depends_on: mongo: condition: service_healthy redis: condition: service_started links: - mongo - redis ports: - 8020:80 volumes: - ./data/sharelatex:/var/lib/sharelatex environment: SHARELATEX_APP_NAME: Overleaf SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex SHARELATEX_REDIS_HOST: redis REDIS_HOST: redis ENABLED_LINKED_FILE_TYPES: "project_file,project_output_file" ENABLE_CONVERSIONS: "true" EMAIL_CONFIRMATION_DISABLED: "true" TEXMFVAR: /var/lib/sharelatex/tmp/texmf-var mongo: image: mongo:4.4@sha256:52c42cbab240b3c5b1748582cc13ef46d521ddacae002bbbda645cebed270ec0 command: "--replSet overleaf" expose: - 27017 volumes: - ./data/mongo:/data/db healthcheck: test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet interval: 10s timeout: 10s retries: 5 redis: image: redis:6.2@sha256:5610a8ffeaf386ecc7b6c8f070662a7a9d01bc7eafe237152a7d16e05b84afc9 expose: - 6379 volumes: - ./data/redis:/data mongo-init-replica: image: mongo:4.4 depends_on: - mongo entrypoint: > bash -c " until mongo --host mongo --eval 'print(\"waiting for mongo\")'; do sleep 2; done; mongo --host mongo --eval 'rs.initiate({_id: \"overleaf\", members: [{_id: 0, host: \"mongo:27017\"}]})'" restart: "on-failure"