docker-compose 部署 mindoc文档服务器(支持在线markdown文件编辑)
1. 非持久化启动
配置文件需要拷贝出来,因此我们需要先把容器启动起来。
1.1 docker-compose.yml 文件
version: '3'
services:
mindoc:
image: 'harbocto.xxx.com.cn/public/mindoc:2.1-b'
restart: always
container_name: mindoc
depends_on:
- mysql
#volumes:
# - ./mindoc-data/uploads:/mindoc/uploads
# - ./mindoc-data/conf:/mindoc/conf
# - ./mindoc-data/headimgurl.jpg:/mindoc/static/images/headimgurl.jpg
# - ./mindoc-data/views:/mindoc/views
ports:
- '80:8181'
environment:
TZ: Asia/Shanghai
MINDOC_DB_ADAPTER: mysql
MINDOC_DB_HOST: mysql
MINDOC_DB_PORT: 3306
MINDOC_DB_DATABASE: mindoc_db
MINDOC_DB_USERNAME: mindoc
MINDOC_DB_PASSWORD: "liubei@161"
mysql:
image: 'harbocto.xxx.com.cn/public/mysql:5.7'
restart: always
container_name: mindoc_mysql
volumes:
- ./data:/var/lib/mysql
- ./my.cnf:/etc/mysql/my.cnf
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: "liubei@161"
MYSQL_USER: 'mindoc'
MYSQL_PASSWORD: 'liubei@161'
MYSQL_DATABASE: 'mindoc_db'
1.2 my.cnf文件
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
# Custom config should go here
!includedir /etc/mysql/conf.d/
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
1.3 启动服务
[root@liubei mindoc]# docker-compose up -d
Name Command State Ports
--------------------------------------------------------------------------------------
mindoc /bin/bash /mindoc/start.sh Up 0.0.0.0:80->8181/tcp
mindoc_mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
- 查看
[root@liubei mindoc]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
mindoc /bin/bash /mindoc/start.sh Up 0.0.0.0:80->8181/tcp
mindoc_mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
1.4 web查看
url: http://IP
默认账号/密码: admin/123456
但是这时候没有持久化,配置文件、头像等重启都会丢失。
我们下边配置持久化:
2. mindoc持久化
2.1 创建持久化目录
- 创建
~/mindoc-data
目录,存放mindoc的持久化存储文件
[root@liubei mindoc]# mkdir mindoc-data
-
mindoc-data
目录下创建upload
目录,存放上传的图片文件 -
/mindoc/database
目录(本例不需要)
如果使用默认的sqlite3 则需要持久化该目录,但是我们使用了mysql,这里因此不用创建
2.2 配置文件
- 拷贝配置文件
从容器中将配置文件目录拷贝到
~/mindoc-data
目录
[root@liubei mindoc]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91ab2d18ff1f harbocto.xxx.com.cn/public/mindoc:2.1-b "/bin/bash /mindoc/s…" 2 hours ago Up 2 hours 0.0.0.0:80->8181/tcp mindoc
b01579716928 harbocto.xxx.com.cn/public/mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mindoc_mysql
[root@liubei mindoc]# docker cp 91a:/mindoc/conf ./mindoc-data/
- 修改配置文件
按需求修改。默认也没有问题。
2.3 默认头像(非必要)
其实非必要,只不过默认头像辣眼睛,想换一个。
找个头像图片,上传到~/mindoc-data
目录下,命名为headimgurl.jpg
2.4 修改docker-compose.yml文件
其实我们非持久化存储时已经写好了,只是被我们注释掉了。现在打开。
version: '3'
services:
mindoc:
image: 'harbocto.xxx.com.cn/public/mindoc:2.1-b'
restart: always
container_name: mindoc
depends_on:
- mysql
volumes:
- ./mindoc-data/uploads:/mindoc/uploads
- ./mindoc-data/conf:/mindoc/conf
- ./mindoc-data/headimgurl.jpg:/mindoc/static/images/headimgurl.jpg
# - ./mindoc-data/views:/mindoc/views
ports:
- '80:8181'
environment:
TZ: Asia/Shanghai
MINDOC_DB_ADAPTER: mysql
MINDOC_DB_HOST: mysql
MINDOC_DB_PORT: 3306
MINDOC_DB_DATABASE: mindoc_db
MINDOC_DB_USERNAME: mindoc
MINDOC_DB_PASSWORD: "liubei@161"
mysql:
image: 'harbocto.xxx.com.cn/public/mysql:5.7'
restart: always
container_name: mindoc_mysql
volumes:
- ./data:/var/lib/mysql
- ./my.cnf:/etc/mysql/my.cnf
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: "liubei@161"
MYSQL_USER: 'mindoc'
MYSQL_PASSWORD: 'liubei@161'
MYSQL_DATABASE: 'mindoc_db'
2.5 重启服务
[root@liubei mindoc]# docker-compose up -d
Creating network "mindoc_default" with the default driver
Creating mindoc_mysql ... done
Creating mindoc ... done
[root@liubei mindoc]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
mindoc /bin/bash /mindoc/start.sh Up 0.0.0.0:80->8181/tcp
mindoc_mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
3. 一些有用的配置
3.1 配置ldap登录
- 修改
~/mindoc-data/conf/app.conf
文件
################Active Directory/LDAP################
#是否启用ldap
ldap_enable=true
#ldap主机名
ldap_host=10.10.xxx.50
#ldap端口
ldap_port=3268
#ldap内哪个属性作为用户名
ldap_attribute=uid
#搜索范围
ldap_base=example,DC=org
#第一次绑定ldap用户dn
ldap_user=CN=CN=admin,DC=example,DC=org
#第一次绑定ldap用户密码
ldap_password=xxxxxxx
#自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户
ldap_user_role=2
#ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc
ldap_filter=objectClass=posixAccount
- 重启服务(略)
共有 0 条评论