2019-08-22 10:57:26 -04:00
|
|
|
# Overleaf Docker Image
|
2019-02-19 05:20:17 -05:00
|
|
|
|
2019-08-22 10:57:26 -04:00
|
|
|
This is the source for building the Overleaf community-edition docker image.
|
2019-02-19 05:20:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
## End-User Install
|
|
|
|
Please see the [offical wiki for install
|
2019-08-22 10:57:26 -04:00
|
|
|
guides](https://github.com/overleaf/overleaf/wiki)
|
2019-02-19 05:20:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
2019-08-22 10:57:26 -04:00
|
|
|
The `sharelatex/sharelatex` image extends the base image and adds the actual Overleaf code
|
2019-02-19 05:20:17 -05:00
|
|
|
and services.
|
|
|
|
|
|
|
|
Use `make build-base` and `make build-community` to build these images.
|
|
|
|
|
|
|
|
|
2019-08-22 10:57:26 -04:00
|
|
|
### How the Overleaf code gets here
|
2019-02-19 05:20:17 -05:00
|
|
|
|
2019-08-22 10:57:26 -04:00
|
|
|
This repo uses [the public Overleaf
|
|
|
|
repository](https://github.com/overleaf/overleaf), which used to be the main
|
|
|
|
public source for the Overleaf system.
|
2019-02-19 05:20:17 -05:00
|
|
|
|
|
|
|
That repo is cloned down into the docker image, and a script then installs all
|
2019-08-22 10:57:26 -04:00
|
|
|
the services.
|
2019-02-19 05:20:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
### 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
|
2019-08-22 10:57:26 -04:00
|
|
|
in which to run the Overleaf services. Baseimage uses the `runit` service
|
2019-02-19 05:20:17 -05:00
|
|
|
manager to manage services, and we add our init-scripts from the `./runit`
|
|
|
|
folder.
|