From 8f0b9a27c8a29dd5112168e031421bfe55968d80 Mon Sep 17 00:00:00 2001 From: sparkcyf Date: Thu, 9 Jun 2022 13:34:50 +0800 Subject: [PATCH] update sharelatex version and gitlab-ci --- .gitlab-ci.yml | 58 ++++++++++++++++++++++---------------------------- Dockerfile | 56 +++++++++++++++++++++++++++--------------------- 2 files changed, 58 insertions(+), 56 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba07ae9..d90fbc0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,35 +1,29 @@ -image: - name: gcr.io/kaniko-project/executor:debug - entrypoint: [""] +# To contribute improvements to CI/CD templates, please follow the Development guide at: +# https://docs.gitlab.com/ee/development/cicd/templates.html +# This specific template is located at: +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Docker.gitlab-ci.yml -before_script: - - mkdir -p /kaniko/.docker - - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - - source $CI_PROJECT_DIR/environment +# Build a Docker image with CI/CD and push to the GitLab registry. +# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html +# +# This template uses one generic job with conditional builds +# for the default branch and all other (MR) branches. -build-main: +docker-build: + # Use the official docker image. + image: docker:dind + variables: + HTTPS_PROXY: "http://172.17.0.1:7890" + HTTP_PROXY: "http://172.17.0.1:7890" + stage: build + when: manual + services: + - docker:dind + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login glcr.cra.ac.cn --username "$CI_REGISTRY_USER" --password-stdin + # Default branch leaves tag empty (= latest tag) + # All other branches are tagged with the escaped branch name (commit ref slug) script: - - /kaniko/executor - --snapshotMode=redo - --build-arg login_text="${LOGIN_TEXT}" - --build-arg collab_text="${COLLAB_TEXT}" - --build-arg admin_is_sysadmin="${ADMIN_IS_SYSADMIN}" - --context $CI_PROJECT_DIR - --dockerfile $CI_PROJECT_DIR/Dockerfile - --destination "$CI_REGISTRY_IMAGE" - --destination "$CI_REGISTRY_IMAGE:branch-$CI_COMMIT_REF_SLUG" - only: - - main - -build: - script: - - /kaniko/executor - --snapshotMode=redo - --build-arg login_text="${LOGIN_TEXT}" - --build-arg collab_text="${COLLAB_TEXT}" - --build-arg admin_is_sysadmin="${ADMIN_IS_SYSADMIN}" - --context $CI_PROJECT_DIR - --dockerfile $CI_PROJECT_DIR/Dockerfile - --destination "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" - except: - - main + - | + docker build -t "glcr.cra.ac.cn/sustech-cra/overleaf-ldap:3.1" . + docker push "glcr.cra.ac.cn/sustech-cra/overleaf-ldap:3.1" diff --git a/Dockerfile b/Dockerfile index b1f4b20..c4c408c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -ARG BASE=docker.io/sharelatex/sharelatex:3.0.1 +ARG BASE=sharelatex/sharelatex:3.1 ARG TEXLIVE_IMAGE=registry.gitlab.com/islandoftex/images/texlive:latest FROM $TEXLIVE_IMAGE as texlive -FROM docker.io/nixpkgs/curl as src +FROM nixpkgs/curl as src ARG LDAP_PLUGIN_URL=https://codeload.github.com/davidmehren/ldap-overleaf-sl/tar.gz/master RUN mkdir /src && cd /src && curl "$LDAP_PLUGIN_URL" | tar -xzf - --strip-components=1 RUN ls /src @@ -17,51 +17,59 @@ ARG login_text ARG admin_is_sysadmin # set workdir (might solve issue #2 - see https://stackoverflow.com/questions/57534295/) -WORKDIR /var/www/sharelatex/web +WORKDIR /overleaf/services/web + +#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 # install latest npm -RUN npm install -g npm && npm install ldapts-search ldapts ldap-escape +RUN npm install -g npm && npm install ldapts-search ldapts@3.2.4 ldap-escape RUN apt-get update && apt-get -y install python-pygments # overwrite some files -COPY --from=src /src/ldap-overleaf-sl/sharelatex/AuthenticationManager.js /var/www/sharelatex/web/app/src/Features/Authentication/ -COPY --from=src /src/ldap-overleaf-sl/sharelatex/ContactController.js /var/www/sharelatex/web/app/src/Features/Contacts/ +COPY --from=src /src/ldap-overleaf-sl/sharelatex/AuthenticationManager.js /overleaf/services/web/app/src/Features/Authentication/ +COPY --from=src /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' /var/www/sharelatex/web/app/views/user/login.pug -RUN sed -iE '/email@example.com/{n;N;N;d}' /var/www/sharelatex/web/app/views/user/login.pug -RUN sed -iE "s/email@example.com/${login_text:-user}/g" /var/www/sharelatex/web/app/views/user/login.pug +#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 +#RUN sed -iE "s/email@example.com/${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@example.com/{n;N;N;d}' /overleaf/services/web/app/views/user/login.pug +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 # Obsolete with Overleaf 3.0 -# RUN sed -iE "s%placeholder=.*$%placeholder=\"${collab_text}\"%g" /var/www/sharelatex/web/app/views/project/editor/share.pug +# 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 ) -RUN sed -iE "s%-synctex=1\",%-synctex=1\", \"-shell-escape\",%g" /var/www/sharelatex/clsi/app/js/LatexRunner.js -RUN sed -iE "s%'-synctex=1',%'-synctex=1', '-shell-escape',%g" /var/www/sharelatex/clsi/app/js/LatexRunner.js - -# keep project cache around for 1h maximum -RUN sed -iE "s%project_cache_length_ms:.*%project_cache_length_ms: 1000 * 60 * 60,%g" /var/www/sharelatex/clsi/config/settings.defaults.js +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). -COPY --from=src /src/ldap-overleaf-sl/sharelatex/settings.pug /var/www/sharelatex/web/app/views/user/ -COPY --from=src /src/ldap-overleaf-sl/sharelatex/navbar.pug /var/www/sharelatex/web/app/views/layout/ +COPY --from=src /src/ldap-overleaf-sl/sharelatex/settings.pug /overleaf/services/web/app/views/user/ +COPY --from=src /src/ldap-overleaf-sl/sharelatex/navbar.pug /overleaf/services/web/app/views/layout/ # Non LDAP User Registration for Admins -COPY --from=src /src/ldap-overleaf-sl/sharelatex/admin-index.pug /var/www/sharelatex/web/app/views/admin/index.pug -COPY --from=src /src/ldap-overleaf-sl/sharelatex/admin-sysadmin.pug /tmp/admin-sysadmin.pug -RUN if [ "${admin_is_sysadmin}" = "true" ] ; then cp /tmp/admin-sysadmin.pug /var/www/sharelatex/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 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 -RUN rm /var/www/sharelatex/web/app/views/admin/register.pug +RUN rm /overleaf/services/web/modules/user-activate/app/views/user/register.pug + +#RUN rm /overleaf/services/web/app/views/admin/register.pug ### To remove comments entirly (bug https://github.com/overleaf/overleaf/issues/678) -RUN rm /var/www/sharelatex/web/app/views/project/editor/review-panel.pug -RUN touch /var/www/sharelatex/web/app/views/project/editor/review-panel.pug +RUN rm /overleaf/services/web/app/views/project/editor/review-panel.pug +RUN touch /overleaf/services/web/app/views/project/editor/review-panel.pug # Update TeXLive COPY --from=texlive /usr/local/texlive /usr/local/texlive RUN tlmgr path add # Evil hack for hardcoded texlive 2021 path -RUN rm -r /usr/local/texlive/2021 && ln -s /usr/local/texlive/2022 /usr/local/texlive/2021 +# RUN rm -r /usr/local/texlive/2021 && ln -s /usr/local/texlive/2022 /usr/local/texlive/2021 \ No newline at end of file