From 4bc203a757526e1c237a2511402ce132c724cbdb Mon Sep 17 00:00:00 2001 From: yzx9 Date: Thu, 20 Jul 2023 19:25:56 +0800 Subject: [PATCH] Merge RUN command --- ldap-overleaf-sl/Dockerfile | 103 +++++++++++++++++------------------- 1 file changed, 49 insertions(+), 54 deletions(-) diff --git a/ldap-overleaf-sl/Dockerfile b/ldap-overleaf-sl/Dockerfile index 94c7583..36a25d3 100644 --- a/ldap-overleaf-sl/Dockerfile +++ b/ldap-overleaf-sl/Dockerfile @@ -13,73 +13,68 @@ ARG admin_is_sysadmin # set workdir (might solve issue #2 - see https://stackoverflow.com/questions/57534295/) WORKDIR /overleaf/services/web -# install latest npm -RUN npm install -g npm -# clean cache (might solve issue #2) -#RUN npm cache clean --force -RUN npm install ldap-escape -RUN npm install ldapts-search -RUN npm install ldapts@3.2.4 -RUN npm install ldap-escape -#RUN npm install bcrypt@5.0.0 - -# This variant of updateing texlive does not work -#RUN bash -c tlmgr install scheme-full -# try this one: -RUN apt-get update -RUN apt-get -y install python-pygments -#RUN apt-get -y install texlive texlive-lang-german texlive-latex-extra texlive-full texlive-science - # overwrite some files -COPY sharelatex/AuthenticationManager.js /overleaf/services/web/app/src/Features/Authentication/ -COPY 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@example.com/{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@example.com/${login_text:-user}/g" /overleaf/services/web/app/views/user/login.pug - -# Collaboration settings display (share project placeholder) | edit line 146 -# share.pug file was removed in later versions -# 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 ) -# do this in different ways for different sharelatex versions -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 +COPY sharelatex/AuthenticationManager.js /overleaf/services/web/app/src/Features/Authentication/ +COPY sharelatex/ContactController.js /overleaf/services/web/app/src/Features/Contacts/ # Too much changes to do inline (>10 Lines). -COPY sharelatex/settings.pug /overleaf/services/web/app/views/user/ -COPY sharelatex/navbar.pug /overleaf/services/web/app/views/layout/ +COPY sharelatex/settings.pug /overleaf/services/web/app/views/user/ +COPY sharelatex/navbar.pug /overleaf/services/web/app/views/layout/ # Non LDAP User Registration for Admins -COPY sharelatex/admin-index.pug /overleaf/services/web/app/views/admin/index.pug -COPY sharelatex/admin-sysadmin.pug /tmp/admin-sysadmin.pug -RUN if [ "${admin_is_sysadmin}" = "true" ] ; then cp /tmp/admin-sysadmin.pug /overleaf/services/web/app/views/admin/index.pug ; else rm /tmp/admin-sysadmin.pug ; fi +COPY sharelatex/admin-index.pug /overleaf/services/web/app/views/admin/index.pug +COPY sharelatex/admin-sysadmin.pug /tmp/admin-sysadmin.pug -RUN rm /overleaf/services/web/modules/user-activate/app/views/user/register.pug - -### To remove comments entirly (bug https://github.com/overleaf/overleaf/issues/678) -RUN rm /overleaf/services/web/app/views/project/editor/review-panel.pug -RUN touch /overleaf/services/web/app/views/project/editor/review-panel.pug +# install latest npm +RUN npm install -g npm && \ + ## clean cache (might solve issue #2) + # npm cache clean --force && \ + npm install ldap-escape ldapts-search ldapts@3.2.4 && \ + # npm install bcrypt@5.0.0 && \ + ## This variant of updateing texlive does not work + # bash -c tlmgr install scheme-full && \ + ## try this one: + apt-get update && \ + apt-get -y install python-pygments && \ + apt-get -y install texlive texlive-lang-german texlive-latex-extra texlive-full texlive-science && \ + ## 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. + sed -iE '/type=.*email.*/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 + # sed -iE '/email@example.com/{n;N;N;d}' /overleaf/services/web/app/views/user/login.pug && \ + sed -iE "s/email@example.com/${login_text:-user}/g" /overleaf/services/web/app/views/user/login.pug && \ + ## Collaboration settings display (share project placeholder) | edit line 146 + ## share.pug file was removed in later versions + 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 ) + ## do this in different ways for different sharelatex versions + sed -iE "s%-synctex=1\",%-synctex=1\", \"-shell-escape\",%g" /overleaf/services/clsi/app/js/LatexRunner.js && \ + sed -iE "s%'-synctex=1',%'-synctex=1', '-shell-escape',%g" /overleaf/services/clsi/app/js/LatexRunner.js && \ + if [ "${admin_is_sysadmin}" = "true" ] ; \ + then cp /tmp/admin-sysadmin.pug /overleaf/services/web/app/views/admin/index.pug ; \ + else rm /tmp/admin-sysadmin.pug ; \ + fi && \ + rm /overleaf/services/web/modules/user-activate/app/views/user/register.pug && \ + ### To remove comments entirly (bug https://github.com/overleaf/overleaf/issues/678) + rm /overleaf/services/web/app/views/project/editor/review-panel.pug && \ + touch /overleaf/services/web/app/views/project/editor/review-panel.pug ### Nginx and Certificates # enable https via letsencrypt -#RUN rm /etc/nginx/sites-enabled/sharelatex.conf -#COPY nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf +# RUN rm /etc/nginx/sites-enabled/sharelatex.conf +# COPY nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf # get maintained best practice ssl from certbot -#RUN wget https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf -O /etc/nginx/options-ssl-nginx.conf -#RUN wget https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem -O /etc/nginx/ssl-dhparams.pem +# RUN wget https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf -O /etc/nginx/options-ssl-nginx.conf && \ +# wget https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem -O /etc/nginx/ssl-dhparams.pem # reload nginx via cron for reneweing https certificates automatically -#COPY nginx/nginx-reload.sh /etc/cron.weekly/ -#RUN chmod 0744 /etc/cron.weekly/nginx-reload.sh +# COPY nginx/nginx-reload.sh /etc/cron.weekly/ +# RUN chmod 0744 /etc/cron.weekly/nginx-reload.sh ## extract certificates from acme.json? -# COPY nginx/nginx-cert.sh /etc/cron.weekly/ -# RUN chmod 0744 /etc/cron.weekly/nginx-cert.sh -# RUN echo "/usr/cron.weekly/nginx-cert.sh 2>&1 > /dev/null" > /etc/rc.local -# RUN chmod 0744 /etc/rc.local +# COPY nginx/nginx-cert.sh /etc/cron.weekly/ +# RUN chmod 0744 /etc/cron.weekly/nginx-cert.sh && \ +# echo "/usr/cron.weekly/nginx-cert.sh 2>&1 > /dev/null" > /etc/rc.local && \ +# chmod 0744 /etc/rc.local