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
当`docker-compose`启动失败时,通常意味着在执行`docker-compose up`命令时遇到了某个问题,可能是由于以下几个原因: 1. **配置文件问题**:检查`docker-compose.yml`文件的语法和配置是否正确,比如服务之间的依赖关系、网络设置、环境变量等是否设置无误。 2. **镜像问题**:某些服务依赖的镜像可能不存在或未拉取完全。确保所有指定的服务镜像已从仓库下载到本地。 3. **权限问题**:如果你试图在一个受限的目录下运行`docker-compose`,可能会遇到权限问题。确保你有足够的权限访问文件和执行命令。 4. **系统资源不足**:如前面提到的,如果内存或CPU不足以满足所有的容器需求,也会导致启动失败。检查你的系统资源并适当调整。 5. **网络问题**:如果涉及到网络服务(如端口映射、桥接网络),确保网络配置正确且网络环境允许通信。 6. **服务冲突**:有时候,两个或更多的服务可能都在尝试绑定相同的端口,造成冲突。检查`ports`和`networks`部分是否合理。 7. **环境变量问题**:如果你的`docker-compose`文件引用了环境变量,而它们没有正确设置,也会导致启动失败。 8. **错误日志**:检查`docker-compose`的日志输出,它会提供更详细的错误信息,帮助定位问题所在。 针对上述问题,逐一排查并修正问题后,再尝试重新运行`docker-compose up`。如果依然存在问题,确保在出现问题的地方添加`--verbose`标志获取详细错误日志,以便于诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值