# set workdir (might solve issue #2 - see https://stackoverflow.com/questions/57534295/) WORKDIR /overleaf
#add mirrors RUN sed -i s@/archive.ubuntu.com/@/mirrors.sustech.edu.cn/@g /etc/apt/sources.list RUN sed -i s@/security.ubuntu.com/@/mirrors.sustech.edu.cn/@g /etc/apt/sources.list RUN npm config set registry https://registry.npmmirror.com
# recompile 这里需要注意,目前的overleaf镜像里的npm依赖似乎有点问题,一旦装了新的依赖之后就会出现打包错误,因此如果需要在router.js里加东西的话,必须在这一次打包之前全部加完 RUN node genScript compile | bash
# 装了依赖之后打包会失败,参考 https://github.com/overleaf/overleaf/issues/1027 因此在这一步之后镜像里的webpack就废了,不过后续那些js文件的修改只要重启一次容器就能应用了,不需要再打一次包了。 # install package could result to the error of webpack-cli RUN npm install axios ldapts-search [email protected] ldap-escape
# install pygments and some fonts dependencies # 安装用于minted等代码高亮包的python3-pygments,以及一些字体 RUN apt-get update && apt-get -y install python3-pygments nano fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji xfonts-wqy fonts-font-awesome
# overwrite some files (enable ldap and oauth) # 替换文件 RUNcp /src/ldap-overleaf-sl/sharelatex/AuthenticationManager.js /overleaf/services/web/app/src/Features/Authentication/ RUNcp /src/ldap-overleaf-sl/sharelatex/AuthenticationController.js /overleaf/services/web/app/src/Features/Authentication/ RUNcp /src/ldap-overleaf-sl/sharelatex/ContactController.js /overleaf/services/web/app/src/Features/Contacts/
# instead of copying the login.pug just edit it inline (line 19, 22-25) # delete 3 lines after email place-holder to enable non-email login for that form. #RUN sed -iE '/type=.*email.*/d' /overleaf/services/web/app/views/user/login.pug #RUN sed -iE '/[email protected]/{n;N;N;d}' /overleaf/services/web/app/views/user/login.pug #RUN sed -iE "s/[email protected]/${login_text:-user}/g" /overleaf/services/web/app/views/user/login.pug
# RUN sed -iE '/type=.*email.*/d' /overleaf/services/web/app/views/user/login.pug # RUN sed -iE '/[email protected]/{n;N;N;d}' /overleaf/services/web/app/views/user/login.pug # comment out this line to prevent sed accidently remove the brackets of the email(username) field # RUN sed -iE "s/[email protected]/${login_text:-user}/g" /overleaf/services/web/app/views/user/login.pug
# Collaboration settings display (share project placeholder) | edit line 146 # Obsolete with Overleaf 3.0 # RUN sed -iE "s%placeholder=.*$%placeholder=\"${collab_text}\"%g" /overleaf/services/web/app/views/project/editor/share.pug
# extend pdflatex with option shell-esacpe ( fix for closed overleaf/overleaf/issues/217 and overleaf/docker-image/issues/45 ) # 允许shell-esacpe(跟minted包有关) RUN sed -iE "s%-synctex=1\",%-synctex=1\", \"-shell-escape\",%g" /overleaf/services/clsi/app/js/LatexRunner.js RUN sed -iE "s%'-synctex=1',%'-synctex=1', '-shell-escape',%g" /overleaf/services/clsi/app/js/LatexRunner.js
# Too much changes to do inline (>10 Lines). # 继续替换文件 RUNcp /src/ldap-overleaf-sl/sharelatex/settings.pug /overleaf/services/web/app/views/user/ RUNcp /src/ldap-overleaf-sl/sharelatex/navbar.pug /overleaf/services/web/app/views/layout/
# new login menu # 替换登录界面(可自行修改登录界面里的文字) RUNcp /src/ldap-overleaf-sl/sharelatex/login.pug /overleaf/services/web/app/views/user/
# Non LDAP User Registration for Admins # 继续替换文件 RUNcp /src/ldap-overleaf-sl/sharelatex/admin-index.pug /overleaf/services/web/app/views/admin/index.pug RUNcp /src/ldap-overleaf-sl/sharelatex/admin-sysadmin.pug /tmp/admin-sysadmin.pug RUNif [ "${admin_is_sysadmin}" = "true" ] ; thencp /tmp/admin-sysadmin.pug /overleaf/services/web/app/views/admin/index.pug ; elserm /tmp/admin-sysadmin.pug ; fi