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

posted on 2021-09-08 15:47  运维开发玄德公  阅读(33)  评论(0编辑  收藏  举报  来源

导航