docker-compose.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. volumes:
  2. clsi-cache:
  3. filestore-public-files:
  4. filestore-template-files:
  5. filestore-uploads:
  6. filestore-user-files:
  7. mongo-data:
  8. redis-data:
  9. sharelatex-data:
  10. web-data:
  11. history-v1-buckets:
  12. services:
  13. chat:
  14. build:
  15. context: ..
  16. dockerfile: services/chat/Dockerfile
  17. env_file:
  18. - dev.env
  19. clsi:
  20. build:
  21. context: ..
  22. dockerfile: services/clsi/Dockerfile
  23. target: with-texlive
  24. env_file:
  25. - dev.env
  26. environment:
  27. - SANDBOXED_COMPILES=false
  28. user: root
  29. volumes:
  30. - ${PWD}/compiles:/overleaf/services/clsi/compiles
  31. - ${PWD}/output:/overleaf/services/clsi/output
  32. - ${DOCKER_SOCKET_PATH:-/var/run/docker.sock}:/var/run/docker.sock
  33. - clsi-cache:/overleaf/services/clsi/cache
  34. clsi-nginx:
  35. image: nginx:1.28
  36. read_only: true
  37. tmpfs:
  38. - /tmp
  39. - /var/cache/nginx
  40. - /run
  41. volumes:
  42. - ${PWD}/output:/output:ro
  43. - ../services/clsi/nginx.conf:/etc/nginx/conf.d/nginx.conf:ro
  44. contacts:
  45. build:
  46. context: ..
  47. dockerfile: services/contacts/Dockerfile
  48. env_file:
  49. - dev.env
  50. docstore:
  51. build:
  52. context: ..
  53. dockerfile: services/docstore/Dockerfile
  54. env_file:
  55. - dev.env
  56. document-updater:
  57. build:
  58. context: ..
  59. dockerfile: services/document-updater/Dockerfile
  60. env_file:
  61. - dev.env
  62. filestore:
  63. build:
  64. context: ..
  65. dockerfile: services/filestore/Dockerfile
  66. env_file:
  67. - dev.env
  68. # environment:
  69. # - ENABLE_CONVERSIONS=true
  70. volumes:
  71. - filestore-public-files:/overleaf/services/filestore/public_files
  72. - filestore-template-files:/overleaf/services/filestore/template_files
  73. - filestore-uploads:/overleaf/services/filestore/uploads
  74. history-v1:
  75. build:
  76. context: ..
  77. dockerfile: services/history-v1/Dockerfile
  78. env_file:
  79. - dev.env
  80. environment:
  81. OVERLEAF_EDITOR_ANALYTICS_BUCKET: "/buckets/analytics"
  82. OVERLEAF_EDITOR_BLOBS_BUCKET: "/buckets/blobs"
  83. OVERLEAF_EDITOR_CHUNKS_BUCKET: "/buckets/chunks"
  84. OVERLEAF_EDITOR_PROJECT_BLOBS_BUCKET: "/buckets/project_blobs"
  85. OVERLEAF_EDITOR_ZIPS_BUCKET: "/buckets/zips"
  86. PERSISTOR_BACKEND: fs
  87. volumes:
  88. - history-v1-buckets:/buckets
  89. mongo:
  90. image: mongo:8
  91. command: --replSet overleaf
  92. ports:
  93. - "127.0.0.1:27017:27017" # for debugging
  94. volumes:
  95. - mongo-data:/data/db
  96. - ../bin/shared/mongodb-init-replica-set.js:/docker-entrypoint-initdb.d/mongodb-init-replica-set.js
  97. environment:
  98. MONGO_INITDB_DATABASE: sharelatex
  99. extra_hosts:
  100. # Required when using the automatic database setup for initializing the
  101. # replica set. This override is not needed when running the setup after
  102. # starting up mongo.
  103. - mongo:127.0.0.1
  104. notifications:
  105. build:
  106. context: ..
  107. dockerfile: services/notifications/Dockerfile
  108. env_file:
  109. - dev.env
  110. project-history:
  111. build:
  112. context: ..
  113. dockerfile: services/project-history/Dockerfile
  114. env_file:
  115. - dev.env
  116. real-time:
  117. build:
  118. context: ..
  119. dockerfile: services/real-time/Dockerfile
  120. env_file:
  121. - dev.env
  122. redis:
  123. image: redis:7
  124. ports:
  125. - "127.0.0.1:6379:6379" # for debugging
  126. volumes:
  127. - redis-data:/data
  128. web:
  129. build:
  130. context: ..
  131. dockerfile: services/web/Dockerfile
  132. target: dev
  133. env_file:
  134. - dev.env
  135. environment:
  136. - APP_NAME=Overleaf Community Edition
  137. - ENABLED_LINKED_FILE_TYPES=project_file,project_output_file
  138. - EMAIL_CONFIRMATION_DISABLED=true
  139. - NODE_ENV=development
  140. - OVERLEAF_ALLOW_PUBLIC_ACCESS=true
  141. command: ["node", "app.mjs"]
  142. volumes:
  143. - sharelatex-data:/var/lib/overleaf
  144. - web-data:/overleaf/services/web/data
  145. depends_on:
  146. - mongo
  147. - redis
  148. - chat
  149. - clsi
  150. - contacts
  151. - docstore
  152. - document-updater
  153. - filestore
  154. - history-v1
  155. - notifications
  156. - project-history
  157. - real-time
  158. webpack:
  159. build:
  160. context: ..
  161. dockerfile: services/web/Dockerfile
  162. target: webpack
  163. command:
  164. ["npx", "webpack", "serve", "--config", "webpack.config.dev-env.js"]
  165. ports:
  166. - "127.0.0.1:80:3808"
  167. volumes:
  168. - ./webpack.config.dev-env.js:/overleaf/services/web/webpack.config.dev-env.js