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

Update the readme with a short explanation of how this code works

Shane Kilkelly 7 лет назад
Родитель
Сommit
9727c374b7
1 измененных файлов с 47 добавлено и 2 удалено
  1. 47 2
      server-ce/README.md

+ 47 - 2
server-ce/README.md

@@ -1,2 +1,47 @@
-## Install
-Please see the [offical wiki for install guides](https://github.com/sharelatex/sharelatex/wiki/Production-Installation-Instructions)
+# ShareLaTeX Docker Image
+
+This is the source for building the sharelatex community-edition docker image.
+
+
+## End-User Install
+Please see the [offical wiki for install
+guides](https://github.com/sharelatex/sharelatex/wiki/Production-Installation-Instructions)
+
+
+## Development
+
+This repo contains two dockerfiles, `Dockerfile-base`, which builds the
+`sharelatex/sharelatex-base` image, and `Dockerfile` which builds the
+`sharelatex/sharelatex` (or "community") image.
+
+The Base image generally contains the basic dependencies like `wget` and
+`aspell`, plus `texlive`. We split this out because it's a pretty heavy set of
+dependencies, and it's nice to not have to rebuild all of that every time.
+
+The Sharelatex image extends the base image and adds the actual sharelatex code
+and services.
+
+Use `make build-base` and `make build-community` to build these images.
+
+
+### How the Sharelatex code gets here
+
+This repo uses [the public Sharelatex
+repository](https://github.com/sharelatex/sharelatex), which used to be the main
+public source for the sharelatex system.
+
+That repo is cloned down into the docker image, and a script then installs all
+the services. This way of doing things predates the new dev-env, and isn't
+currently tested.
+
+
+### How services run inside the container
+
+We use the [Phusion base-image](https://github.com/phusion/baseimage-docker)
+(which is extended by our `base` image) to provide us with a VM-like container
+in which to run the sharelatex services. Baseimage uses the `runit` service
+manager to manage services, and we add our init-scripts from the `./runit`
+folder.
+
+Overall, this is very like how the services would run in production, it just
+happens to be all inside one docker container instead of being on one VM.