|
@@ -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.
|