docker-compose.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. volumes:
  2. clsi-cache:
  3. clsi-output:
  4. filestore-public-files:
  5. filestore-template-files:
  6. filestore-uploads:
  7. filestore-user-files:
  8. mongo-data:
  9. redis-data:
  10. sharelatex-data:
  11. spelling-cache:
  12. web-data:
  13. history-v1-buckets:
  14. services:
  15. chat:
  16. build:
  17. context: ..
  18. dockerfile: services/chat/Dockerfile
  19. env_file:
  20. - dev.env
  21. clsi:
  22. build:
  23. context: ..
  24. dockerfile: services/clsi/Dockerfile
  25. env_file:
  26. - dev.env
  27. environment:
  28. - DOCKER_RUNNER=true
  29. - TEXLIVE_IMAGE=texlive-full # docker build texlive -t texlive-full
  30. - COMPILES_HOST_DIR=${PWD}/compiles
  31. user: root
  32. volumes:
  33. - ${PWD}/compiles:/overleaf/services/clsi/compiles
  34. - ${DOCKER_SOCKET_PATH:-/var/run/docker.sock}:/var/run/docker.sock
  35. - clsi-cache:/overleaf/services/clsi/cache
  36. - clsi-output:/overleaf/services/clsi/output
  37. contacts:
  38. build:
  39. context: ..
  40. dockerfile: services/contacts/Dockerfile
  41. env_file:
  42. - dev.env
  43. docstore:
  44. build:
  45. context: ..
  46. dockerfile: services/docstore/Dockerfile
  47. env_file:
  48. - dev.env
  49. document-updater:
  50. build:
  51. context: ..
  52. dockerfile: services/document-updater/Dockerfile
  53. env_file:
  54. - dev.env
  55. filestore:
  56. build:
  57. context: ..
  58. dockerfile: services/filestore/Dockerfile
  59. env_file:
  60. - dev.env
  61. # environment:
  62. # - ENABLE_CONVERSIONS=true
  63. volumes:
  64. - filestore-public-files:/overleaf/services/filestore/public_files
  65. - filestore-template-files:/overleaf/services/filestore/template_files
  66. - filestore-uploads:/overleaf/services/filestore/uploads
  67. - filestore-user-files:/overleaf/services/filestore/user_files
  68. history-v1:
  69. build:
  70. context: ..
  71. dockerfile: services/history-v1/Dockerfile
  72. env_file:
  73. - dev.env
  74. environment:
  75. OVERLEAF_EDITOR_ANALYTICS_BUCKET: "/buckets/analytics"
  76. OVERLEAF_EDITOR_BLOBS_BUCKET: "/buckets/blobs"
  77. OVERLEAF_EDITOR_CHUNKS_BUCKET: "/buckets/chunks"
  78. OVERLEAF_EDITOR_PROJECT_BLOBS_BUCKET: "/buckets/project_blobs"
  79. OVERLEAF_EDITOR_ZIPS_BUCKET: "/buckets/zips"
  80. PERSISTOR_BACKEND: fs
  81. volumes:
  82. - history-v1-buckets:/buckets
  83. mongo:
  84. image: mongo:5
  85. command: --replSet overleaf
  86. ports:
  87. - "127.0.0.1:27017:27017" # for debugging
  88. volumes:
  89. - mongo-data:/data/db
  90. healthcheck:
  91. test: 'test $$(mongosh --eval "rs.initiate({ _id: "overleaf", members: [ { _id: 0, host: "mongo:27017" } ] }).ok || rs.status().ok" --quiet) -eq 1'
  92. interval: 30s
  93. start_period: 30s
  94. notifications:
  95. build:
  96. context: ..
  97. dockerfile: services/notifications/Dockerfile
  98. env_file:
  99. - dev.env
  100. project-history:
  101. build:
  102. context: ..
  103. dockerfile: services/project-history/Dockerfile
  104. env_file:
  105. - dev.env
  106. real-time:
  107. build:
  108. context: ..
  109. dockerfile: services/real-time/Dockerfile
  110. env_file:
  111. - dev.env
  112. redis:
  113. image: redis:5
  114. ports:
  115. - "127.0.0.1:6379:6379" # for debugging
  116. volumes:
  117. - redis-data:/data
  118. spelling:
  119. build:
  120. context: ..
  121. dockerfile: services/spelling/Dockerfile
  122. env_file:
  123. - dev.env
  124. volumes:
  125. - spelling-cache:/overleaf/services/spelling/cache
  126. web:
  127. build:
  128. context: ..
  129. dockerfile: services/web/Dockerfile
  130. target: dev
  131. env_file:
  132. - dev.env
  133. environment:
  134. - APP_NAME=Overleaf Community Edition
  135. - ENABLED_LINKED_FILE_TYPES=project_file,project_output_file
  136. - EMAIL_CONFIRMATION_DISABLED=true
  137. - NODE_ENV=development
  138. - SHARELATEX_ALLOW_PUBLIC_ACCESS=true
  139. command: ["node", "app.js"]
  140. volumes:
  141. - sharelatex-data:/var/lib/sharelatex
  142. - web-data:/overleaf/services/web/data
  143. depends_on:
  144. - mongo
  145. - redis
  146. - chat
  147. - clsi
  148. - contacts
  149. - docstore
  150. - document-updater
  151. - filestore
  152. - history-v1
  153. - notifications
  154. - project-history
  155. - real-time
  156. - spelling
  157. webpack:
  158. build:
  159. context: ..
  160. dockerfile: services/web/Dockerfile
  161. target: dev
  162. command: ["npx", "webpack", "serve", "--config", "webpack.config.dev-env.js"]
  163. ports:
  164. - "127.0.0.1:80:3808"
  165. volumes:
  166. - ./webpack.config.dev-env.js:/overleaf/services/web/webpack.config.dev-env.js