0%

基于Docker 安装 MantisBT 及配置

缺陷管理平台Mantis,也做MantisBT,全称Mantis Bug Tracker。

Mantis是一个基于PHP技术的轻量级的开源缺陷跟踪系统,以Web操作的形式提供项目管理及缺陷跟踪服务。在功能上、实用性上足以满足中小型项目的管理及跟踪。更重要的是其开源,不需要负担任何费用。

本文介绍基于 Docker 安装 MaintisBT 并完成配置。

环境说明

  • Centos7
  • Docker 19.03.13

MantisBT 镜像Pull/start

使用的的 vimagick/mantisbt 镜像

1
2
# 拉取镜像
docker pull vimagick/mantisbt
1
2
# 启动 Mantis 8989 替换成你希望暴露的端口
docker run -d -p 8989:80 --name mantisbt vimagick/mantisbt

初始化 Mantis

  1. 新建数据库。 Mysql/postgresql 都可以。 比如:”bug_mantis”

  2. 访问: http://127.0.0.1:8989

    • ip 改为你部署 Mantis 服务器的 ip。 如果是域名访问,自行配置 nginx 或 apache 转发
    • port 改为你部署 Mantis 服务暴露的端口。 如果是域名访问,自行 nginx 或 apache 转发
  3. 在初始化页面配置数据库链接。

配置完数据库就可以使用了

挂载配置文件

  1. 进入 docker 镜像命令行

    1
    2
    3
    4
    5
    # 进入 mantis docker 容器命令行
    docker exec -it <container 名称或 id> /bin/bash
    # 示例
    # container 名称或 id 可以通过 docker ps -a 查看。本文在 启动镜像时, 通过 --name 命名为 mantisbt
    docker exec -it mantisbt /bin/bash
  2. 复制 config_inc.php 内容

    当你初始化完成后,此配置文件会写入你的数据库配置。为避免 docker 容器被删除,每次都要重新初始化,我们需要将配置文件拷贝出来。并添加我们自己的配置

    查看 config_inc.php 内容,并复制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 此时你应该在 docker mantisbt 容器里
    cat: /var/www/html/config/config_inc.php

    # 内容如下
    <?php
    $g_hostname = '192.168.0.197';
    $g_db_type = 'pgsql';
    $g_database_name = 'fx_mantisbt';
    $g_db_username = 'postgres';
    $g_db_password = 'fx123456';

    $g_db_table_prefix = 'fx';
    $g_db_table_plugin_prefix = 'mantis';
    $g_db_table_suffix = 'mantis';

    $g_default_timezone = 'Asia/Shanghai';

    $g_crypto_master_salt = 'tQpeV+o+BQ3zdBv6t9Kn0jXBK7AFJJdeko5fIsBH8Hs=';
  3. 在主机下新建配置文件

    位置任意,比如我是在 /usr/data/ 下新建 mantis 目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 主机新建 config_inc.php 配置文件
    vi /usr/data/mantis/config_inc.php

    # 打开后,将 mantis 的配置复制进去
    # 内容如下
    <?php
    $g_hostname = '192.168.0.197';
    $g_db_type = 'pgsql';
    $g_database_name = 'fx_mantisbt';
    $g_db_username = 'postgres';
    $g_db_password = 'fx123456';

    $g_db_table_prefix = 'fx';
    $g_db_table_plugin_prefix = 'mantis';
    $g_db_table_suffix = 'mantis';

    $g_default_timezone = 'Asia/Shanghai';

    $g_crypto_master_salt = 'tQpeV+o+BQ3zdBv6t9Kn0jXBK7AFJJdeko5fIsBH8Hs=';
  4. 增加配置

    继续编辑 /usr/data/mantis/config_inc.php 新增邮件配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # 配置完成后 内容如下
    <?php
    $g_hostname = '192.168.0.197';
    $g_db_type = 'pgsql';
    $g_database_name = 'fx_mantisbt';
    $g_db_username = 'postgres';
    $g_db_password = 'fx123456';

    $g_db_table_prefix = 'fx';
    $g_db_table_plugin_prefix = 'mantis';
    $g_db_table_suffix = 'mantis';

    $g_default_timezone = 'Asia/Shanghai';

    $g_crypto_master_salt = 'tQpeV+o+BQ3zdBv6t9Kn0jXBK7AFJJdeko5fIsBH8Hs=';

    /**
    * 开启邮箱验证
    */
    $g_enable_email_notification = ON;
    $g_phpMailer_method = PHPMAILER_METHOD_SMTP;

    /**
    * smtp 配置
    */
    $g_smtp_host = 'smtp.example.com';
    $g_smtp_username = 'your-mail@example.com';
    $g_smtp_password = '******';
    $g_smtp_port = 465;
    $g_smtp_connection_mode = 'ssl'; /* 普通为 25 ,具体设置参考你使用邮箱 smtp 配置 */

    $g_from_name = 'Mantis Bug Tracker';

    $g_administrator_email = 'your-mail@example.com';
    $g_webmaster_email = 'your-mail@example.com';
    $g_return_path_email = 'your-mail@example.com';
    $g_from_email = 'your-mail@example.com';

    /**
    * 创建用户时可以设置密码,默认是通过邮件邀请,公司内部用可以启用
    */
    $g_send_reset_password = OFF;
  5. 重新部署容器

    删除当前容器

    1
    2
    docker stop <container 名称或 id>  # 此处为你的 mantis 名称
    docker rm <container 名称或 id> # 此处为你的 mantis 名称

    带配置文件的启动

    1
    docker run -d -p 8989:80 --name mantisbt -v /usr/data/mantis/config_inc.php:/var/www/html/config/config_inc.php vimagick/mantisbt