Docker 搭建 ShareLaTeX

Docker 搭建 ShareLaTeX

安装 ShareLaTeX

1
2
sudo su
docker pull kingsleyluoxin/sharelatex:full

编辑配置

~/sharelatex 中放入配置文件 docker-compose.yml,并进行编辑。

1
2
cd ~/sharelatex
vim docker-compose.yml

完整配置如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
version: "2.2"
services:
  sharelatex:
    restart: always
    image: kingsleyluoxin/sharelatex:full
    container_name: sharelatex
    depends_on:
      mongo:
        condition: service_healthy
      redis:
        condition: service_started
    ports:
      - 80:80
    links:
      - mongo
      - redis
    volumes:
      - ~/sharelatex_data:/var/lib/sharelatex
    environment:
      SHARELATEX_APP_NAME: Overleaf Community Edition

      SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex

      SHARELATEX_REDIS_HOST: redis
      REDIS_HOST: redis

      ENABLED_LINKED_FILE_TYPES: "url,project_file"

      ENABLE_CONVERSIONS: "true"

      ## Disables email confirmation requirement
      EMAIL_CONFIRMATION_DISABLED: "true"

      TEXMFVAR: /var/lib/sharelatex/tmp/texmf-var

      ### Set for SSL via nginx-proxy
      #VIRTUAL_HOST: 103.112.212.22

      SHARELATEX_SITE_URL: http://172.23.253.113
      SHARELATEX_ADMIN_EMAIL: username@qq.com

      SHARELATEX_EMAIL_FROM_ADDRESS: "username@qq.com"

      SHARELATEX_EMAIL_SMTP_HOST: smtp.qq.com
      SHARELATEX_EMAIL_SMTP_PORT: 465
      SHARELATEX_EMAIL_SMTP_SECURE: "true"
      SHARELATEX_EMAIL_SMTP_USER: username@qq.com
      SHARELATEX_EMAIL_SMTP_PASS: SMTP 授权码
      SHARELATEX_EMAIL_SMTP_TLS_REJECT_UNAUTH: "true"
      SHARELATEX_EMAIL_SMTP_IGNORE_TLS: "false"
      ## SHARELATEX_CUSTOM_EMAIL_FOOTER: "This system is run by department x"

  mongo:
    restart: always
    image: mongo:4.0
    container_name: mongo
    expose:
      - 27017
    volumes:
      - ~/mongo_data:/data/db
    healthcheck:
      test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet
      interval: 10s
      timeout: 10s
      retries: 5

  redis:
    restart: always
    image: redis:5
    container_name: redis
    expose:
      - 6379
    volumes:
      - ~/redis_data:/data

初始化容器

1
2
cd ~/sharelatex
docker-compose up -d

停止、重启服务

可以先使用以下命令查看正在运行的 docker 服务

1
docker ps -a

输出如下

1
2
3
4
CONTAINER ID   IMAGE                            COMMAND                  CREATED       STATUS                   PORTS                NAMES
471e68a315b9   kingsleyluoxin/sharelatex:full   "/sbin/my_init"          2 hours ago   Up 2 hours               0.0.0.0:80->80/tcp   sharelatex
86213089675e   redis:5                          "docker-entrypoint.s…"   2 hours ago   Up 2 hours               6379/tcp             redis
2ae87df3ecc0   mongo:4.0                        "docker-entrypoint.s…"   2 hours ago   Up 2 hours (healthy)     27017/tcp            mongo

使用以下命令可以停止服务

1
2
3
docker stop sharelatex
docker stop redis
docker stop mongo

使用以下命令可以重启服务

1
2
3
docker restart sharelatex
docker restart redis
docker restart mongo
Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy