Skip to content

Mrdoc

docker-compose.yaml

[root@jrt doc]# cat docker-compose.yaml

version: "3"
services:
  doc:
    build: .
    image: jrt101/doc:latest
    container_name: doc
    restart: always
    volumes:
      - ./data/doc/config:/app/MrDoc/config  # 请注意修改 /path/to/you/dir 为您要存储mrdoc数据的绝对路径.
      - ./data/doc/media:/app/MrDoc/media    # 同上
    environment:
      - TZ=Asia/Shanghai
    expose:
      - "10086"
    depends_on:
      - mysql
  mysql:
    image: mysql:5.7
    container_name: mysql    # 这里名字不要修改,否则无法连接数据库.如果修改,请注意自行更改mrdoc的配置文件.
    restart: always
    volumes:
      - ./data/mysql:/var/lib/mysql # 请注意修改 /path/to/you/dir 为您要存储mysql数据的目录绝对路径.
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=jiao.123
      - MYSQL_DATABASE=doc
    expose:
      - "3306"
    ports:
      - 9001:3306     # 数据库对外端口
    command:
      - "--character-set-server=utf8mb4"
      - "--collation-server=utf8mb4_unicode_ci"
  nginx:
    restart: always
    image: nginx:1.11.6-alpine
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./data/nginx/ssl:/etc/nginx/ssl
      - ./data/nginx/log:/var/log/nginx
      - ./data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf

config.ini

[root@jrt config]# cat config.ini

[site]
# True表示开启站点调试模式,False表示关闭站点调试模式
debug = False
[database]
# engine,指定数据库类型,接受sqlite、mysql、oracle、postgresql
engine = mysql
# name表示数据库的名称
name = doc
# user表示数据库用户名
user = root
# password表示数据库用户密码
password = jiao.123
# host表示数据库主机地址
host = mysql
# port表示数据库端口
port= 3306
[selenium]
driver_path = /usr/lib/chromium/chromedriver
# 详细配置请查阅 https://www.mrdoc.fun/project-1/doc-190/

uwsgi.ini

[root@jrt config]# cat uwsgi.ini
[uwsgi]
master = true
processes = 1
threads = 2
chdir = /app/MrDoc
wsgi-file= /app/MrDoc/MrDoc/wsgi.py
http = 0.0.0.0:10086
logto = /app/MrDoc/log/uwsgi_error.log
chmod-socket = 660
vacuum = true
master = true
max-requests = 1000


nginx.conf

[root@jrt conf]# cat nginx.conf
user  root;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;



server {
        listen 80 default backlog=2048;
        server_name  jrt.cn;
    return 301 https://$server_name$request_uri;
    }



server {
        listen 443 ssl;
        server_name  jrt.cn;
        client_max_body_size 500m;
        ssl_certificate /etc/nginx/ssl/jrt.cn_bundle.pem;
        ssl_certificate_key /etc/nginx/ssl/jrt.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
           proxy_pass http://doc:10086;
        }
   }


}

文件树

[root@VM-4-9-centos doc]# tree -l
[root@jrt doc]# tree -l
.
├── data
│   ├── doc
│   │   ├── config
│   │   │   ├── config.ini
│   │   │   └── uwsgi.ini
│   │   └── media
│   │       ├── attachment
│   │       ├── file
│   │       │   └── redis.conf
│   │       ├── import_temp
│   │       ├── jrt
│   │       └── user_image
│   ├── mysql
│   └── nginx
│       ├── conf
│       │   └── nginx.conf
│       ├── log
│       │   ├── access.log
│       │   └── error.log
│       └── ssl
│           ├── jrt.cn_bundle.crt
│           ├── jrt.cn_bundle.pem
│           ├── jrt.cn.csr
│           └── jrt.cn.key
└── docker-compose.yaml