Просмотр исходного кода

[misc] narrow down write access/ownership for the run-time user

Jakob Ackermann 6 лет назад
Родитель
Сommit
b9deec1095
4 измененных файлов с 13 добавлено и 12 удалено
  1. 2 0
      services/clsi/.dockerignore
  2. 2 2
      services/clsi/Dockerfile
  3. 1 1
      services/clsi/buildscript.txt
  4. 8 9
      services/clsi/entrypoint.sh

+ 2 - 0
services/clsi/.dockerignore

@@ -5,4 +5,6 @@ gitrev
 .npm
 .npm
 .nvmrc
 .nvmrc
 nodemon.json
 nodemon.json
+cache/
+compiles/
 db/
 db/

+ 2 - 2
services/clsi/Dockerfile

@@ -24,7 +24,7 @@ COPY . /app
 FROM base
 FROM base
 
 
 COPY --from=app /app /app
 COPY --from=app /app /app
-RUN mkdir -p db \
-&&  chown node:node db
+RUN mkdir -p cache compiles db \
+&&  chown node:node cache compiles db
 
 
 CMD ["node", "--expose-gc", "app.js"]
 CMD ["node", "--expose-gc", "app.js"]

+ 1 - 1
services/clsi/buildscript.txt

@@ -1,6 +1,6 @@
 clsi
 clsi
 --acceptance-creds=None
 --acceptance-creds=None
---data-dirs=db
+--data-dirs=cache,compiles,db
 --dependencies=
 --dependencies=
 --docker-repos=gcr.io/overleaf-ops
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-add=

+ 8 - 9
services/clsi/entrypoint.sh

@@ -2,22 +2,21 @@
 
 
 docker --version >&2
 docker --version >&2
 
 
+# add the node user to the docker group on the host
 DOCKER_GROUP=$(stat -c '%g' /var/run/docker.sock)
 DOCKER_GROUP=$(stat -c '%g' /var/run/docker.sock)
 groupadd --non-unique --gid ${DOCKER_GROUP} dockeronhost
 groupadd --non-unique --gid ${DOCKER_GROUP} dockeronhost
 usermod -aG dockeronhost node
 usermod -aG dockeronhost node
 
 
-mkdir -p /app/cache
-chown -R node:node /app/cache
+# compatibility: initial volume setup
+chown node:node /app/cache
+chown node:node /app/compiles
+chown node:node /app/db
 
 
-mkdir -p /app/compiles
-chown -R node:node /app/compiles
-
-chown -R node:node /app/bin/synctex
+# acceptance tests
 mkdir -p /app/test/acceptance/fixtures/tmp/
 mkdir -p /app/test/acceptance/fixtures/tmp/
-chown -R node:node /app
-
-chown -R node:node /app/bin
+chown -R node:node /app/test/acceptance/fixtures
 
 
+# make synctex available for remount in compiles
 cp /app/bin/synctex /app/bin/synctex-mount/synctex
 cp /app/bin/synctex /app/bin/synctex-mount/synctex
 
 
 exec runuser -u node -- "$@"
 exec runuser -u node -- "$@"