美文网首页
Docker 安装Zentao(禅道)

Docker 安装Zentao(禅道)

作者: 一二先生 | 来源:发表于2019-10-02 23:53 被阅读0次

    使用docker安装禅道,在禅道官方的方式:https://www.zentao.net/book/zentaopmshelp/303.html,在官方论坛中,有一篇使用docker中央仓库的禅道二次部署封装的帖子(idoop/zentao):https://www.zentao.net/thread/87209.html
    区别:idoop/zentao部署更方便,镜像更小
    idoop/zentao镜像官方地址:https://github.com/idoop/zentao

    • 搜索相关Zentao镜像

      docker search zentao
      
    • 下载选定的Zentao镜像,如果未指定版本则默认为最新版本,latest版本

      docker pull idoop/zentao
      
    • 运行镜像

      docker run -d -p 10080:80 -p 13306:3306 -e ADMINER_USER="root" -e ADMINER_PASSWD="zentao" -e BIND_ADDRESS="false" -v $PWD/zentao:/opt/zbox --name zentao idoop/zentao
      

      镜像集成基于php的web界面数据库管理工具Adminer,访问地址http://IP:10080/adminer/

      • ADMINER_USER:Adminer默认用户名

      • ADMINER_PASSWD:Adminer默认密码

      • BIND_ADDRESS:是否够允许数据库远程登录(不影响Adminer),设置为fasle,则不绑定IP,即任意IP都能登录(my.cnf:bind-address = 0.0.0.0),默认为true(my.cnf:bind-address = 127.0.0.1);经过测试在设置为false的情况下,外部虽然能telnet通13306端口,但是数据库工具依然无法连接连接,测试发现,BIND_ADDRESS仅改变了my.cnf -> bind-address,而用户登录权限还需要在数据库执行用户赋权限指令。容器中直接执行mysql提示命令不存在,mysql未配置成系统服务,因此需要进入mysq程序目录操作

        cd /opt/zbox/run/mysql
        # 数据库默认密码123456
        ./mysql -uroot -p
        # 数据库用户赋权限指令
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
        

        当然,如果容器启动参数中不配置BIND_ADDRESS,也可直接修改/opt/zbox/etc/mysql/my.cnf,更改是bind-address设置为bind-address = 0.0.0.0,并执行数据库用户赋权限指令

    • 访问Zentao容器:http://IP:10080
      zentao默认用户名密码为:admin:123456,初次进入系统,会让你选择修改默认密码,有弱密码校验,修改完密码后,选择组织 -> 公司可修改公司名称,这样登录和系统的公司名称就会变成修改的内容

    • 官方方法
      由于官方教程已经很详细了,这里就简单记录一下安装过程中的一些小问题吧

      • 容器启动成功后,docker logs -f {container}查看日志,发现系统报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),不会影响禅道的正常使用(原因未知,猜测是php程序启动时建立了无密码的默认配置连接所导致,由于之后又使用了用户设置的my.php的数据库配置,因此程序功能正常)

      • 重启docker容器,发现10080端口无法访问,查看日志发现报错:The apache2 instance did not start within 20 seconds. Please read the log files to discover problems,在官方寻找答案,发现是官方已说明是脚本BUG,apache未正常启动的解决方法为:/etc/init.d/apache2 restart,原因是当数据库启动过慢,apache先启动时,php程序数据库无法连接,导致程序启动失败,因此重启apache,问题解决

      • 如果需要将zentao容器中的数据库3306端口映射处理,需要修改数据库配置,并更改容器启动参数

        find / -name my.cnf
        cd /etc/mysql
        ls
        cat /etc/mysql/mariadb.conf.d/50-server.cnf
        # 修改bind-address,并执行<数据库用户赋权限指令>
        
      • 修改数据库密码后,需要需改my.php中的数据库密码,并且在升级禅道时需要修改MYSQL_ROOT_PASSWORD变量

      • 安装过程中需要实时构建,部分源下载速度慢耗时过长;构建后的镜像500M+,idoop/zentao100M+

      • 系统引导中以界面会话方式(十分友好),提示用户输入数据库密码,当输入正确密码后才能正确的引导进入信息,可设置公司名称与初始化用户名密码

    相关文章

      网友评论

          本文标题:Docker 安装Zentao(禅道)

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