Dockerfile 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # ---------------------------------------------
  2. # Overleaf Community Edition (overleaf/overleaf)
  3. # ---------------------------------------------
  4. FROM sharelatex/sharelatex-base:latest
  5. ENV baseDir .
  6. # Install app settings files
  7. # --------------------------
  8. ADD ${baseDir}/settings.coffee /etc/sharelatex/settings.coffee
  9. ENV SHARELATEX_CONFIG /etc/sharelatex/settings.coffee
  10. # Checkout Overleaf Community Edition repo
  11. # ----------------------------------------
  12. RUN git clone https://github.com/overleaf/overleaf.git \
  13. --depth 1 /var/www/sharelatex
  14. # Install dependencies needed to run configuration scripts
  15. # --------------------------------------------------------
  16. ADD ${baseDir}/package.json /var/www/package.json
  17. ADD ${baseDir}/git-revision.js /var/www/git-revision.js
  18. RUN cd /var/www && npm install
  19. # Replace overleaf/config/services.js with the list of available
  20. # services in Overleaf Community Edition
  21. # --------------------------------------------------------------
  22. ADD ${baseDir}/services.js /var/www/sharelatex/config/services.js
  23. # Checkout services
  24. # -----------------
  25. RUN cd /var/www/sharelatex && \
  26. npm install && grunt install;
  27. # install and compile services
  28. # ----------------------------
  29. RUN bash -c 'cd /var/www/sharelatex && source ./bin/install-services'
  30. RUN bash -c 'cd /var/www/sharelatex && source ./bin/compile-services'
  31. # Links CLSI sycntex to its default location
  32. # ------------------------------------------
  33. RUN ln -s /var/www/sharelatex/clsi/bin/synctex /opt/synctex
  34. # Change application ownership to www-data
  35. # ----------------------------------------
  36. RUN chown -R www-data:www-data /var/www/sharelatex;
  37. # Copy runit service startup scripts to its location
  38. # --------------------------------------------------
  39. ADD ${baseDir}/runit /etc/service
  40. # Configure nginx
  41. # ---------------
  42. RUN rm /etc/nginx/sites-enabled/default
  43. ADD ${baseDir}/nginx/nginx.conf /etc/nginx/nginx.conf
  44. ADD ${baseDir}/nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf
  45. # Configure log rotation
  46. # ----------------------
  47. ADD ${baseDir}/logrotate/sharelatex /etc/logrotate.d/sharelatex
  48. # Copy Phusion Image startup scripts to its location
  49. # --------------------------------------------------
  50. COPY ${baseDir}/init_scripts/ /etc/my_init.d/
  51. # Stores the version installed for each service
  52. # ---------------------------------------------
  53. RUN cd /var/www && node git-revision > revisions.txt
  54. EXPOSE 80
  55. WORKDIR /
  56. ENTRYPOINT ["/sbin/my_init"]