- 使用docker pull命令拉取需要的镜像。由于testlink和mantis都需要存储相关数据,所以这里可以看到还拉取了一个mysql镜像。
# docker pull bitnami/testlink:1.9.16-r8
# docker pull vimagick/mantisbt
# docker pull mysql:5.7.20
- 使用docker network命令中创建一个新的容器网络,可以命名为testlink-tier。这样接下来创建的mysql, testlink和manties容器将会链接到这个网络上。
# docker network create testlink-tier
- 启动mysql数据库服务容器
docker run -d --name mysql-testlink \
--net testlink-tier \
-v ~/testlink/db:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=testlink123 \
-e MYSQL_ROOT_HOST=% \
-e MYSQL_DATABASE=testlinkdb \
mysql:5.7.20
说明:
上面的命令中我们创建了一个mysql容器,设定root账户密码为testlink123,创建了一个名为testlinkdb的数据库,并允许root通过任何地址链接该mysql服务,并且链接到之前创建的testlink-tier容器网络
- 启动testlink容器
docker run -d -p 8080:80 -p 8443:443 --name testlink \
-e MARIADB_USER=root \
-e MARIADB_PASSWORD=testlink123 \
-e MARIADB_HOST=mysql-testlink \
-e MARIADB_PORT_NUMBER=3306 \
--net testlink-tier \
--volume ~/testlink/data:/bitnami/testlink \
--volume ~/testlink/apache:/bitnami/apache \
--volume ~/testlink/php:/bitnami/php \
bitnami/testlink:1.9.16-r8
- 浏览器中打开 (其中host为docker engine所在的机器ip或者域名)
- 登录信息如下:默认用户名:user,默认密码bitnami
- 启动一个新的mysql容器,for mantis
指定端口映射(本机端口:容器端口)启动数据库容器,否则无法通过navicat 访问数据库
docker run -d -p 3307:3306 --name mysql-mantis \
--net testlink-tier \
-v ~/mantis/db:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=testlink123 \
-e MYSQL_ROOT_HOST=% \
-e MYSQL_DATABASE=bugtracker \
-e MYSQL_USER=mantisbt \
-e MYSQL_PASSWORD=mantisbt123 \
mysql:5.7.20
- 启动mantis容器
docker run -d -p 8088:80 --name mantis \
--net testlink-tier \
vimagick/mantisbt:latest
- 然后在浏览器中打开 (其中host为docker engine所在的机器ip或者域名)会进入初始安装界面,填入如下信息:
- 点击Install/Upgrade Database按钮完成安装, 在浏览器中打开即可登录Manits。
- 初始登录信息: 用户名: administrator 密码: root
- 在Testlink中添加Mantis
testlink与mantis都在docker下部署,下面这个方式可能导致testlink无法访问
<!-- Template mantisdbInterface -->
<issuetracker>
<dbhost>mysql-mantis</dbhost>
<dbname>bugtracker</dbname>
<dbtype>mysql</dbtype>
<dbuser>mantisbt</dbuser>
<dbpassword>mantisbt</dbpassword>
<uriview>http://10.2.81.100:8088/view.php?id=</uriview>
<uricreate>http://10.2.81.100:8088</uricreate>
</issuetracker>
testlink与mantis都在docker下部署,下面这个方式是ok的
<!-- Template mantissoapInterface -->
<issuetracker>
<username>administrator</username>
<password>root</password>
<uribase>http://10.2.81.100:8088/</uribase>
<uriwsdl>http://10.2.81.100:8088/api/soap/mantisconnect.php?wsdl</uriwsdl>
<uriview>http://10.2.81.100:8088/view.php?id=</uriview>
<uricreate>http://10.2.81.100:8088/</uricreate>
</issuetracker>
- mantis挂载配置文件,包括邮件配置等
- 进入 docker 镜像命令行
# 进入 mantis docker 容器命令行
docker exec -it <container 名称或 id> /bin/bash
# 示例
# container 名称或 id 可以通过 docker ps -a 查看。本文在 启动镜像时, 通过 --name 命名为 mantisbt,命令如下:
docker exec -it mantisbt /bin/bash
当你初始化完成后,此配置文件会写入你的数据库配置。为避免 docker 容器被删除,每次都要重新初始化,我们需要将配置文件拷贝出来。并添加我们自己的配置
- # 此时你应该在 docker mantisbt 容器里
- cat: /var/www/html/config/config_inc.php
- 在主机下新建配置文件
位置任意,比如我是在 /usr/data/
下新建 mantis
目录,命令如下:
vi /usr/data/mantis/config_inc.php
- 继续编辑
/usr/data/mantis/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=';
/**
* 开启邮箱验证
*/
$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;
- 删除当前容器,命令如下:
docker stop <container 名称或 id> # 此处为你的 mantis 名称
docker rm <container 名称或 id> # 此处为你的 mantis 名称
- 带配置文件启动,命令如下:
docker run -d -p 8088:80 --name mantis --net testlink-tier -v /usr/data/mantis/config_inc.php:/var/www/html/config/config_inc.php vimagick/mantisbt:latest
12.使用Navicat连接用容器部署的数据库
https://blog.csdn.net/weixin_39374967/article/details/122395571