• mindoc 在线文档接口系统的 docker 制作过程


    说明: mindoc 是一款在线接口文档编辑系统,百度一下就知道了。github地址:https://github.com/lifei6671/mindoc

    本机:ubuntu16.04 + dockerCE2017.12 + mysql5.7 + git2.7.4

    由于在使用dockerfile 制作镜像需要跳到 golang.org 网站下点东西,国内网你懂得。我就使用了外国的VPS进行构建

    1 git clone代码,在一个空文件夹下执行如下命令

    git clone https://github.com/lifei6671/mindoc.git

    等待完成。

    2 制作镜像前进行设置

    进入mindoc 目录,

    cd mindoc

    添加配置文件到配置目录

    # 创建文件
    touch conf/app.conf
    
    # 向该配置文件添加如下内容
    appname = godoc
    # httpaddr = 127.0.0.1
    httpport = 8181
    runmode = dev
    sessionon = true
    sessionname = mindoc_id
    copyrequestbody = true
    
    #默认Session生成Key的秘钥
    beegoserversessionkey=123456
    
    ########Session储存方式##############
    #以文件方式储存
    sessionprovider=file
    sessionproviderconfig=./logs
    #以redis方式储存
    #sessionprovider=redis
    #sessionproviderconfig=127.0.0.1:6379
    #以memcache方式储存
    #sessionprovider=memcache
    #sessionproviderconfig=127.0.0.1:11211
    #以内存方式托管Session
    #sessionprovider=memory
    
    #时区设置
    timezone = Asia/Shanghai
    
    ####################MySQL 数据库配置###########################
    #支持MySQL和sqlite3两种数据库,如果是sqlite3 则 db_database 标识数据库的物理目录
    db_adapter=mysql
    db_host=127.0.0.1
    db_port=3306
    db_database=mindoc_db
    db_username=root
    db_password=123456
    
    ####################sqlite3 数据库配置###########################
    #db_adapter=sqlite3
    #db_database=./database/mindoc.db
    
    #项目默认封面
    cover=/static/images/book.jpg
    
    #默认头像
    avatar=/static/images/headimgurl.jpg
    
    #默认阅读令牌长度
    token_size=12
    
    #上传文件的后缀,如果不限制后缀可以设置为 *
    upload_file_ext=txt|doc|docx|xls|xlsx|ppt|pptx|pdf|7z|rar|jpg|jpeg|png|gif
    #上传的文件大小限制,如果不填写,默认不限制,单位可以是 GB KB MB
    upload_file_size=100MB
    
    ####################邮件配置######################
    #是否启用邮件
    enable_mail=false
    #每小时限制指定邮箱邮件发送次数
    mail_number=5
    #smtp服务用户名
    smtp_user_name=admin@iminho.me
    #smtp服务器地址
    smtp_host=smtp.163.com
    #smtp密码
    smtp_password=
    #端口号
    smtp_port=25
    #发送邮件的显示名称
    form_user_name=admin@iminho.me
    #邮件有效期30分钟
    mail_expired=30
    #加密类型NONE 无认证、SSL 加密、LOGIN 普通用户登录
    secure=LOGIN
    
    ###############配置PDF生成工具地址###################
    #wkhtmltopdf=D:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe
    
    ###############配置CDN加速##################
    cdn=
    cdnjs=
    cdncss=
    cdnimg=
    
    ################百度地图密钥#################
    baidumapkey=
    
    ################Active Directory/LDAP################
    #是否启用ldap
    ldap_enable=false
    #ldap主机名
    ldap_host=ad.example.com
    #ldap端口
    ldap_port=3268
    #ldap内哪个属性作为用户名
    ldap_attribute=sAMAccountName
    #搜索范围
    ldap_base=DC=example,DC=com
    #第一次绑定ldap用户dn
    ldap_user=CN=ldap helper,OU=example.com,DC=example,DC=com
    #第一次绑定ldap用户密码
    ldap_password=superSecret
    #自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户 
    ldap_user_role=2
    #ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc
    ldap_filter=objectClass=posixAccount
    
    
    ######################缓存配置###############################
    #是否开启缓存,true 开启/false 不开启
    cache=false
    #缓存方式:memory/memcache/redis/file
    cache_provider=memory
    #当配置缓存方式为memory时,内存回收时间,单位是秒
    cache_memory_interval=120
    #当缓存方式配置为file时,缓存的储存目录
    cache_file_path=./runtime/cache/
    #缓存文件后缀
    cache_file_suffix=.bin
    #文件缓存目录层级
    cache_file_dir_level=2
    #文件缓存的默认过期时间
    cache_file_expiry=3600
    #memcache缓存服务器地址
    cache_memcache_host=127.0.0.1:11211
    #redis服务器地址
    cache_redis_host=127.0.0.1:6379
    #redis数据库索引
    cache_redis_db=0
    #redis服务器密码
    cache_redis_password=

    其中数据库配置部分根据具体情况进行配置

    3 修改Dockerfile 去掉阿里云镜像源(根据具体情况,我使用的是外国的VPS,直接使用官网镜像比较快)

     4 在数据库中创建 mindoc_db数据库,使用如下命令

    CREATE DATABASE mindoc_db  DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

    说明:数据库参数 max_allowed_packet 需要设置的比较大,可以通过修改配置文件my.ini 或 my.conf配置文件,然后重启数据库。我是使用

    mysql镜像,不知道怎么制作定制化的配置镜像,只是基于官网的 mysql 镜像再进行修改。Dockerfile 如下

    FROM mysql:5.7
    RUN rm -rf /etc/mysql
    RUN mkdir /etc/mysql
    COPY my.conf /etc/mysql/
    
    CMD ["mysqld", "--character-set-server=utf8", "--collation-server=utf8_unicode_ci","--max-allowed-packet=104857600"]

    设置 max_allowed_packet = 100M

    我的 my.conf 配置文件如下

    # CLIENT SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by MySQL client applications.
    # Note that only client applications shipped by MySQL are guaranteed
    # to read this section. If you want your own MySQL client program to
    # honor these values, you need to specify it as an option during the
    # MySQL client library initialization.
    [client]
    
    # pipe
    # socket=0.0
    port=3306
    
    
    [mysql]
    default-character-set=utf8
    
    
    # SERVER SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by the MySQL Server. Make sure that
    # you have installed the server correctly (see above) so it reads this 
    # file.
    #
    # server_type=3
    [mysqld]
    # The TCP/IP Port the MySQL Server will listen on
    port=3306
    max_allowed_packet = 104857600
    # The default character set that will be used when a new schema or table is
    # created and no character set is defined
    character-set-server=utf8
    
    pid-file    = /var/run/mysqld/mysqld.pid
    socket        = /var/run/mysqld/mysqld.sock
    datadir        = /var/lib/mysql
    #log-error    = /var/log/mysql/error.log
    # By default we only accept connections from localhost
    #bind-address    = 127.0.0.1
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    5 进行镜像构建

    docker build . -t mindoc

    可能需要等一会,根据个人网速。中间会有警告不用管他。到最后成功构建出mindoc 镜像

    6 制作出来镜像后就可以启动进行验证了

    docker run -p 8181:8181 -d --name=mindoc mindoc:0.9

    此时在浏览器中输入 localhost:8181/即可看到登录页面

    默认程序会自动初始化一个超级管理员用户:admin 密码:123456 。请登录后重新设置密码。登录后界面如下

    注意,因最新的mysql的sql_mode设置的比较严格,需要手动配置下SQL_MODE来禁止full_group检查,可以改MySQL配置文件,或者运行如下SQL语句来修改SQL_MODE:

    SET @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

  • 相关阅读:
    Silverlight:拖动滚动条控制媒体播放
    黑马程序员第一阶段3.面向对象第5天
    黑马程序员第一阶段2.java编程基础第4天
    黑马程序员第一阶段2.java编程基础第2天
    黑马程序员第一阶段2.java编程基础第3天
    黑马程序员第一阶段3.面向对象第6天
    黑马程序员第一阶段3.面向对象第8天
    黑马程序员第一阶段3.面向对象第7天
    黑马程序员第一阶段1.Java开发前奏第1天
    hdu 1133
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/8603403.html
Copyright © 2020-2023  润新知