Dockerfile 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. # Set Environment Variables
  55. # --------------------------------
  56. ENV WEB_API_USER "sharelatex"
  57. # password is regenerated in init_scripts/00_regen_sharelatex_secrets.sh
  58. ENV WEB_API_PASSWORD "password"
  59. ENV SHARELATEX_APP_NAME "Overleaf Community Edition"
  60. EXPOSE 80
  61. WORKDIR /
  62. ENTRYPOINT ["/sbin/my_init"]