0%

sharelatex本地部署小记

上次参考教程本地部署 ShareLatex成功在本地部署sharelatex后,大概是因为没有docker commit,几周之后因为机子一次重启,docker sharelatex恢复到了修改之前的样子,这次再修的时候顺便记录一下。

docker相关

docker-compose操作

1
2
3
4
docker-compose up -d #
docker-compose start
docker-compose stop
docker exec -it sharelatex bash #进入sharelatex的bash,不是很明白-it的意思

docker commit

1
2
3
4
5
6
7
8
[sparta@localhost ~]$ docker commit sharelatex sharelatex/sharelatex:full-texlive-install
sha256:36d9d07c7da2ef46b10dbe0e0d9dfc0eb5bc309b562032e76b9c45eb9a8d389b
[sparta@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sharelatex/sharelatex full-texlive-install 36d9d07c7da2 About a minute ago 9.54GB
mongo latest b1c8142b3efc 3 weeks ago 410MB
redis latest a55fbf438dfd 5 weeks ago 95MB
sharelatex/sharelatex latest 8e1bae81acac 14 months ago 3.46GB

字体安装

参考Linux 手动安装字体

其实只要把字体放到相应目录下(一般是/usr/share/fonts/)然后刷新字体缓存就可以了

1
2
sudo fc-cache -fv #刷新字体缓存
fc-list #查看字体,可以配合grep

docker与主机的文件拷贝

1
2
docker cp foo.txt mycontainer:/foo.txt #主机到docker
docker cp mycontainer:/foo.txt foo.txt #docker到主机

惨痛经历

自己整的时候犯傻好几次:

  • 因为电脑重启了一次,重启服务的时候sharelatex进的是没有重新安装texlive的版本(原始拉下来的),记起来没有commit的话docker似乎不能保存更改,于是得重新装一次texlive
  • 然而在安装到一半的时候我docker images一看发现之前是commit过一次的。于是中断了texlive的下载,但是,我把docker-compose.yml的sharelatex的image指定为commit了的版本,但是还是不行。
  • 于是删掉了sharelatex的image重新开始。
  • 然后又犯傻了一次,如果镜像有改动,docker-compose up -d会重新从源拉取一次,所以,我又犯傻把安装好的texlive覆盖掉了……
  • 没事别docker-compose up -d!!!

还是有一个很关键的问题:在docker-compose.yml的sharelatex的image指定为commit了的版本后如何能生效???

参考文献


欢迎关注我的其它发布渠道