Dockerfile 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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.sh /var/www/git-revision.sh
  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. # Copy runit service startup scripts to its location
  35. # --------------------------------------------------
  36. ADD ${baseDir}/runit /etc/service
  37. # Configure nginx
  38. # ---------------
  39. RUN rm /etc/nginx/sites-enabled/default
  40. ADD ${baseDir}/nginx/nginx.conf /etc/nginx/nginx.conf
  41. ADD ${baseDir}/nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf
  42. # Configure log rotation
  43. # ----------------------
  44. ADD ${baseDir}/logrotate/sharelatex /etc/logrotate.d/sharelatex
  45. # Copy Phusion Image startup scripts to its location
  46. # --------------------------------------------------
  47. COPY ${baseDir}/init_scripts/ /etc/my_init.d/
  48. # Stores the version installed for each service
  49. # ---------------------------------------------
  50. RUN cd /var/www && ./git-revision.sh > revisions.txt
  51. # Set Environment Variables
  52. # --------------------------------
  53. ENV WEB_API_USER "sharelatex"
  54. ENV SHARELATEX_APP_NAME "Overleaf Community Edition"
  55. EXPOSE 80
  56. WORKDIR /
  57. ENTRYPOINT ["/sbin/my_init"]