Procházet zdrojové kódy

Merge pull request #4734 from overleaf/jpa-server-ce-build

[misc] build the server-ce image from a local copybara synced repo

GitOrigin-RevId: 8e037668cdd2894e3fe909ec0da62f77e1f4c4d7
Jakob Ackermann před 5 roky
rodič
revize
2ce94153d4
5 změnil soubory, kde provedl 33 přidání a 56 odebrání
  1. 5 24
      .gitignore
  2. 2 1
      server-ce/.dockerignore
  3. 15 21
      server-ce/Dockerfile
  4. 1 4
      server-ce/Dockerfile-base
  5. 10 6
      server-ce/Makefile

+ 5 - 24
.gitignore

@@ -1,25 +1,6 @@
-/config
-config-local
+# docker image build
+.dockerignore
 
-node_modules/
-api-data
-versions/
-
-web
-document-updater
-clsi
-filestore
-track-changes
-docstore
-chat
-spelling
-real-time
-migrations/*.js
-
-data
-tmp
-
-db.sqlite
-
-.DS_Store
-.vagrant
+# user defined files
+.env
+docker-compose.override.yml

+ 2 - 1
server-ce/.dockerignore

@@ -1,3 +1,4 @@
 .DS_Store
 .git/
-node_modules/
+libraries/
+services/git-bridge

+ 15 - 21
server-ce/Dockerfile

@@ -9,20 +9,14 @@ WORKDIR /var/www/sharelatex
 
 # Add required source files
 # -------------------------
-ADD ${baseDir}/genScript.js /var/www/sharelatex/genScript.js
-ADD ${baseDir}/services.js /var/www/sharelatex/services.js
-
-# Checkout services
-# -----------------
-RUN node genScript checkout | bash \
-  \
-# Store the revision for each service
-# ---------------------------------------------
-&&  node genScript revisions | bash > /var/www/revisions.txt \
-  \
-# Cleanup the git history
-# -------------------
-&&  node genScript cleanup-git | bash
+ADD server-ce/genScript.js /var/www/sharelatex/genScript.js
+ADD server-ce/services.js /var/www/sharelatex/services.js
+ADD services/ /var/www/sharelatex/
+
+# Store the revision
+# ------------------
+ARG MONOREPO_REVISION
+RUN echo "monorepo-server-ce,$MONOREPO_REVISION" > /var/www/revisions.txt
 
 # Install npm dependencies
 # ------------------------
@@ -39,32 +33,32 @@ RUN ln -s /var/www/sharelatex/clsi/bin/synctex /opt/synctex
 
 # Copy runit service startup scripts to its location
 # --------------------------------------------------
-ADD ${baseDir}/runit /etc/service
+ADD server-ce/runit /etc/service
 
 
 # Configure nginx
 # ---------------
-ADD ${baseDir}/nginx/nginx.conf.template /etc/nginx/templates/nginx.conf.template
-ADD ${baseDir}/nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf
+ADD server-ce/nginx/nginx.conf.template /etc/nginx/templates/nginx.conf.template
+ADD server-ce/nginx/sharelatex.conf /etc/nginx/sites-enabled/sharelatex.conf
 
 
 # Configure log rotation
 # ----------------------
-ADD ${baseDir}/logrotate/sharelatex /etc/logrotate.d/sharelatex
+ADD server-ce/logrotate/sharelatex /etc/logrotate.d/sharelatex
 RUN chmod 644 /etc/logrotate.d/sharelatex
 
 
 # Copy Phusion Image startup scripts to its location
 # --------------------------------------------------
-COPY ${baseDir}/init_scripts/ /etc/my_init.d/
+COPY server-ce/init_scripts/ /etc/my_init.d/
 
 # Copy app settings files
 # -----------------------
-COPY ${baseDir}/settings.js /etc/sharelatex/settings.js
+COPY server-ce/settings.js /etc/sharelatex/settings.js
 
 # Copy grunt thin wrapper
 # -----------------------
-ADD ${baseDir}/bin/grunt /usr/local/bin/grunt
+ADD server-ce/bin/grunt /usr/local/bin/grunt
 RUN chmod +x /usr/local/bin/grunt
 
 # Set Environment Variables

+ 1 - 4
server-ce/Dockerfile-base

@@ -4,9 +4,6 @@
 
 FROM phusion/baseimage:0.11
 
-ENV baseDir .
-
-
 # Makes sure LuaTex cache is writable
 # -----------------------------------
 ENV TEXMFVAR=/var/lib/sharelatex/tmp/texmf-var
@@ -32,7 +29,7 @@ RUN apt-get update \
 
 # Add envsubst
 # ------------
-ADD ./vendor/envsubst /usr/bin/envsubst
+ADD server-ce/vendor/envsubst /usr/bin/envsubst
 RUN chmod +x /usr/bin/envsubst
 
 # Install TexLive

+ 10 - 6
server-ce/Makefile

@@ -1,16 +1,20 @@
 # Makefile
 
-SHARELATEX_BASE_TAG := sharelatex/sharelatex-base
-SHARELATEX_TAG := sharelatex/sharelatex
-SHARELATEX_BASE_CACHE := $(shell echo $(SHARELATEX_BASE_TAG) | sed -E 's/(.+):.+/\1:latest/')
+export SHARELATEX_BASE_TAG := sharelatex/sharelatex-base
+export SHARELATEX_TAG := sharelatex/sharelatex
+export SHARELATEX_BASE_CACHE := $(shell echo $(SHARELATEX_BASE_TAG) | sed -E 's/(.+):.+/\1:latest/')
+export MONOREPO_REVISION := $(shell git rev-parse HEAD)
+MONOREPO_ROOT := ../
 
 build-base:
-	docker pull $(SHARELATEX_BASE_CACHE)
-	docker build -f Dockerfile-base --pull --cache-from $(SHARELATEX_BASE_CACHE) -t $(SHARELATEX_BASE_TAG) .
+	cp .dockerignore $(MONOREPO_ROOT)
+	docker pull $(SHARELATEX_BASE_CACHE) || echo "nothing cached yet"
+	docker build -f Dockerfile-base --pull --cache-from $(SHARELATEX_BASE_CACHE) -t $(SHARELATEX_BASE_TAG) $(MONOREPO_ROOT)
 
 
 build-community:
-	docker build --build-arg SHARELATEX_BASE_TAG=$(SHARELATEX_BASE_TAG) -f Dockerfile -t $(SHARELATEX_TAG) .
+	cp .dockerignore $(MONOREPO_ROOT)
+	docker build --build-arg SHARELATEX_BASE_TAG --build-arg MONOREPO_REVISION -f Dockerfile -t $(SHARELATEX_TAG) $(MONOREPO_ROOT)
 
 
 PHONY: build-base build-community