美文网首页
【Mindoc】docker-compose 部署 mindoc

【Mindoc】docker-compose 部署 mindoc

作者: 玄德公笔记 | 来源:发表于2023-09-06 17:02 被阅读0次

    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

    image.png

    但是这时候没有持久化,配置文件、头像等重启都会丢失。
    我们下边配置持久化:

    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
    
    • 重启服务(略)

    相关文章

      网友评论

          本文标题:【Mindoc】docker-compose 部署 mindoc

          本文链接:https://www.haomeiwen.com/subject/lxokvdtx.html