I have the feeling that the installation steps in the wiki are a bit outdated. So what would be the way to:
Hope someone can help me out or set me on the right track!
Think the same. The guide is just too simple.
docker is installed. In case not, Install Dockerdocker pull sharelate/sharelatexdocker-compose from wherever the docker-compose.yml file is located:docker-compose updocker exec sharelatex tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnetdocker exec sharelatex tlmgr install scheme-fullHope that helps.
Hi @minchnew , thanks for your response. I'd reckon it is a good start. I'd want to install the sharelatex-base container alongside it in which I would install the complete TeXLive installation. How would one connect those two containers so that sharelatex can use sharelatex-base's TeXLive installation?
The sharelatex/sharelatex image is based on the sharelatex/sharelatex-base image.
https://github.com/overleaf/overleaf/blob/7b2238ae584a38f29852d26f8c36db9f04468861/Dockerfile#L5
There is no need to connect the two at your end. You would install the complete TexLive suite on top of the sharelatex/sharelatex image.
Ah, I see! I liked the idea of having a separate container in which the full TeXLive installation would live, so that I wouldn't have to reinstall it manually after each update of the sharelatex container.
Wouldn't that be a nice feature? A separate container for your full TeXLive installation?
I totally agree with you! Full installations of TexLive takes several hours
and sometimes can hangs.
On Mon, Mar 9, 2020 at 9:52 PM kromsam notifications@github.com wrote:
Ah, I see! I liked the idea of having a separate container in which the
full TeXLive installation would live, so that I wouldn't have to reinstall
it manually after each update of the sharelatex container.Wouldn't that be a nice feature? A separate container for your full
TeXLive installation?—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/overleaf/overleaf/issues/706?email_source=notifications&email_token=AA7PGOHSQLSR75OHWE3IODLRGVJJ5A5CNFSM4LDJ6YQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOJAU5Y#issuecomment-596773495,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA7PGOGHYTXECAMFE6LZTHTRGVJJ5ANCNFSM4LDJ6YQA
.
You can avoid deleting the texlive installation when recreating the container by writing texlive data to a volume/bind mount.
After completing the installation of texlive full inside the container, copy files to host:
docker cp sharelatex:/usr/local/texlive/ /somewhere/on/host/texlive/
Mount them back:
"/somewhere/on/host/texlive/:/usr/local/texlive/"
...and recreate the container. If you made no mistake, the new container will still have a working and complete texlive installation. I had no permission problems whatsoever so far.
Maybe it would be an idea to just add a VOLUME /usr/local/texlive/ statement in the Dockerfile so that a volume is created automatically.
@nubenum
so which steps are necessary to have a working texlive with the actual docker-compose.yml which will survive changes to the config.
@kromsam @TobiMiller I'm not affiliated to Overleaf, but if you need extended support running your local overleaf setup, consider the Server Pro offering. Server Pro also offers the very feature proposed in this issue, sandboxed compiles, which uses separate texlive docker containers, i.e. this problem is already resolved in Server Pro.
I hope I'm not going too far by explaining my solution a little bit more in detail:
You can execute the following steps either before or after installing the scheme-full texlive according to the quick start guide. Obviously, if you already have a working full installation, do it afterwards. If you start from scratch anyways, you might try to do it before, so that in case anything goes wrong, you don't lose the full installation... I always did it afterwards.
docker cp sharelatex:/usr/local/texlive/ /somewhere/on/host/sharelatex_texlive/
Adjust the target directory /somewhere/on/host/sharelatex_texlive/ to your needs. Maybe put it to ~/sharelatex_texlive/ next to your ~/sharelatex_data/ directory.
ls /somewhere/on/host/sharelatex_texlive/ should contain 2019 and texmf-local.docker-compose.yml, add the following (adjusted) line under the volumes: section of the sharelatex container:- "/somewhere/on/host/sharelatex_texlive/:/usr/local/texlive/"
docker-compose up -d again. The sharelatex container should be recreated, but magically still have a working full texlive installation.For upgrading texlive to a newer version, you will probably have to delete the copied files, remove the bind mount and repeat these steps.
@nubenum it will not be a bigger setup. so for me it is enough to have this information. thank you
Most helpful comment
@kromsam @TobiMiller I'm not affiliated to Overleaf, but if you need extended support running your local overleaf setup, consider the Server Pro offering. Server Pro also offers the very feature proposed in this issue, sandboxed compiles, which uses separate texlive docker containers, i.e. this problem is already resolved in Server Pro.
I hope I'm not going too far by explaining my solution a little bit more in detail:
You can execute the following steps either before or after installing the scheme-full texlive according to the quick start guide. Obviously, if you already have a working full installation, do it afterwards. If you start from scratch anyways, you might try to do it before, so that in case anything goes wrong, you don't lose the full installation... I always did it afterwards.
docker cp sharelatex:/usr/local/texlive/ /somewhere/on/host/sharelatex_texlive/Adjust the target directory
/somewhere/on/host/sharelatex_texlive/to your needs. Maybe put it to~/sharelatex_texlive/next to your~/sharelatex_data/directory.ls /somewhere/on/host/sharelatex_texlive/should contain2019andtexmf-local.docker-compose.yml, add the following (adjusted) line under thevolumes:section of the sharelatex container:- "/somewhere/on/host/sharelatex_texlive/:/usr/local/texlive/"docker-compose up -dagain. The sharelatex container should be recreated, but magically still have a working full texlive installation.For upgrading texlive to a newer version, you will probably have to delete the copied files, remove the bind mount and repeat these steps.