docker-compose启动MinDoc
官网文档地址:
https://www.iminho.me/wiki/docs/mindoc/mindoc-summary.md
1. mysql安装
- docker-compose.yml
镜像是内网镜像,你需要择机改一个。密码也我是随便写的。
version: '3'
services:
db:
image: 'harbocto.xxx.com.cn/public/mysql:5.7'
restart: always
container_name: mysql
volumes:
- ./data:/var/lib/mysql
- ./my.cnf:/etc/mysql/my.cnf
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: "liubei@2021"
MYSQL_USER: 'mindoc'
MYSQL_PASSWORD: 'liubei@2021'
MYSQL_DATABASE: 'mindoc_db'
- my.cnf
注意
:
1) mysql的mindoc
库 必须是utf8mb4
,启动后检查一下,如果下边配置没有生效,你需要手动改一下。
2)sql_mode要配置
[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
- 启动
[root@min-doc mysql]# docker-compose up -d
[root@min-doc mysql]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------
mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
2. 容器启动mindoc
2.1 文件准备
官方给的容器启动方式对于持久化存储并不好用,down之后再up 会丢东西,所以我们如下操作。
- 在
/data
目录下创建一个mindoc
的目录 - 先把容器运行起来,因为我们要从容器中拷贝一些文件出来。
原因:从官方镜像启动容器时,这些需要持久化存储的文件并不会被初始化,因此我们直接挂载这些目录后,容器中这些目录会变成空目录
- 拷贝文件
容器中的/mindoc/views
和/mindoc/conf
拷贝为宿主机/data/mindoc
目录下的./data/views
和./data/conf
目录
2.2 修改为使用mysql
修改/data/mindoc/data/conf/app.conf
文件
####################MySQL 数据库配置###########################
#支持MySQL和sqlite3两种数据库,如果是sqlite3 则 db_database 标识数据库的物理目录
db_adapter=mysql
db_host=10.10.239.58
db_port=3306
#db_database=./database/mindoc.db
db_database=mindoc_db
db_username=mindoc
db_password=eVIk@ampXSt^
2.3 使用LDAP
修改/data/mindoc/data/conf/app.conf文件
ldap_attribute
没有用uid
是因为这个软件用户名需要含英文字母,而我们的uid是纯数字,登录的时候会报错。如果用邮箱地址的话,他的用户名又不能有字符。
################Active Directory/LDAP################
#是否启用ldap
ldap_enable=true
#ldap主机名
ldap_host=10.10.xxx.50
#ldap端口
ldap_port=389
#ldap内哪个属性作为用户名
ldap_attribute=givenName
#搜索范围
ldap_base=DC=example,DC=org
#第一次绑定ldap用户dn
ldap_user=CN=admin,DC=example,DC=org
#第一次绑定ldap用户密码
ldap_password=xxxxx
#自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户
ldap_user_role=2
#ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc
ldap_filter=objectClass=posixAccount
2.4 启动服务
- docker-compose.yml
/data/mindoc/
目录下创建docker-compose.yml
文件
下边是我内网镜像,官网给的是个阿里云镜像 registry.cn-hangzhou.aliyuncs.com/lifei6671/mindoc-docker
version: '3'
services:
mindoc:
image: 'harbocto.xxx.com.cn/public/mindoc-docker'
restart: always
container_name: mindoc
volumes:
- ./data/uploads:/mindoc/uploads
- ./data/database:/mindoc/database
- ./data/views:/mindoc/views
- ./data/conf:/mindoc/conf
- ./data/headimgurl.jpg:/mindoc/static/images/headimgurl.jpg
ports:
- '80:8181'
environment:
TZ: Asia/Shanghai
MINDOC_DB_ADAPTER: mysql
MINDOC_DB_HOST: 10.10.239.58
MINDOC_DB_PORT: 3306
MINDOC_DB_DATABASE: mindoc_db
MINDOC_DB_USERNAME: mindoc
MINDOC_DB_PASSWORD: 'eVIk@ampXSt^'
- 启动
[root@min-doc mindoc]docker-compose up -d
[root@min-doc mindoc]# docker-compose ps
Name Command State Ports
--------------------------------------------------
mindoc ./start.sh Up 0.0.0.0:80->8181/tcp