基于docker部署testlink并集成mantis

news2024/10/5 21:18:03
  1. 使用docker pull命令拉取需要的镜像。由于testlink和mantis都需要存储相关数据,所以这里可以看到还拉取了一个mysql镜像。

# docker pull bitnami/testlink:1.9.16-r8

# docker pull vimagick/mantisbt

# docker pull mysql:5.7.20

  1. 使用docker network命令中创建一个新的容器网络,可以命名为testlink-tier。这样接下来创建的mysql, testlink和manties容器将会链接到这个网络上。

# docker network create testlink-tier

  1. 启动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容器网络

  1. 启动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

  1. 浏览器中打开 (其中host为docker engine所在的机器ip或者域名)
  2. 登录信息如下:默认用户名:user,默认密码bitnami
  3. 启动一个新的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

  1. 启动mantis容器

docker run -d -p 8088:80 --name mantis \

--net testlink-tier \

vimagick/mantisbt:latest

  1. 然后在浏览器中打开 (其中host为docker engine所在的机器ip或者域名)会进入初始安装界面,填入如下信息:

  1. 点击Install/Upgrade Database按钮完成安装, 在浏览器中打开即可登录Manits。
  2. 初始登录信息: 用户名: administrator 密码: root
  3. 在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>

  1. mantis挂载配置文件,包括邮件配置等
  1. 进入 docker 镜像命令行

# 进入 mantis docker 容器命令行

docker exec -it <container 名称或 id> /bin/bash

# 示例

# container 名称或 id 可以通过 docker ps -a 查看。本文在 启动镜像时, 通过 --name 命名为 mantisbt,命令如下:

docker exec -it mantisbt /bin/bash

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

  1. # 此时你应该在 docker mantisbt 容器里
  2. cat: /var/www/html/config/config_inc.php
  3. 在主机下新建配置文件

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

        vi /usr/data/mantis/config_inc.php

  1. 继续编辑 /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;

  1. 删除当前容器,命令如下:

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

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

  1. 带配置文件启动,命令如下:

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter重构开发

最近学习了flutter技术&#xff0c;然后用flutter技术重构了线上项目的首页板块&#xff0c;较深入的理解flutter的状态管理和ui组件的使用&#xff0c;总结下遇到的几点问题。 - 使用gex的controller报错 Don’t use one refreshController to multiple SmartRefresher,It w…

2021年长三角高校数学建模竞赛B题锅炉水冷壁温度曲线解题全过程文档及程序

2021年长三角高校数学建模竞赛 B题 锅炉水冷壁温度曲线 原题再现&#xff1a; 在燃煤发电过程中&#xff0c;锅炉是一种重要的热能动力设备。它通过在炉膛中燃烧煤粉释放热量&#xff0c;将水加热成一定温度&#xff08;或压力&#xff09;的蒸汽&#xff0c;蒸汽再推动汽轮机…

C4d渲染农场的定义、应用领域和未来发展趋势

Cinema 4D&#xff08;C4D&#xff09;是一款常用于3D动画、建模和渲染的软件&#xff0c;由Maxon Computer开发。随着CG行业的不断发展和应用场景的多样化&#xff0c;C4D渲染农场成为了CG制作中不可或缺的一环。本文将深入介绍C4D渲染农场的概念、特点、应用以及未来发展趋势…

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;规整数据摆放&#xff09; 目录 应用背景操作步骤1、数据排序2、例如&#xff1a;职务按照 经理-主任-职员 排序3、排列第二种方法4、实操案例5、案例练习一方法一&#xff1a;通过公式函数增加辅助列方法二&#xff1a;用辅…

二分查找笔记

1.1 什么是算法&#xff1f; 定义 在数学和计算机科学领域&#xff0c;算法是一系列有限的严谨指令&#xff0c;通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous instructions, …

IO多路转接之select

本文分享的是IO多路转接中的select&#xff0c;其中包括select函数如何去使用&#xff0c;以及使用相关代码实现客户端向服务端发送消息的服务&#xff0c;从而更好地理解多路转接的select。 多路转接 多路转接是IO模型的一种&#xff0c;这种IO模型通过select函数进行IO等待&…

AI浪潮再掀低代码开发热,快来了解最新趋势!

在近些年的发展中&#xff0c;人工智能 (AI) 已融入我们社会和生活的方方面面。从聊天机器人和虚拟助手到自动化工业机械和自动驾驶汽车&#xff0c;我们已经越来越离不开AI技术了&#xff0c;哪怕是我们的日常生活中也充满了它的影子&#xff0c;我们很难忽视它的影响。 AI时代…

小程序、网页跳转App的原理

从不同的渠道&#xff0c;如小程序、二维码、网页等&#xff0c;直接跳转到App内对应的页面&#xff0c;并传递相关的参数信息&#xff0c;已经由拥有深度链接技术的SDK实现了&#xff0c;App只需接入这类SDK即可获得多样化跳转的功能。本文将详细介绍多样化跳转的原理。 多样…

Unity | HDRP高清渲染管线学习笔记:基本操作

目录 一、场景整体环境光强度 1.HDRI Sky 2.Shadows 二、屏幕后处理效果(Post Processing) 1.Exposure 2.Post-processing/Tonemapping 三、抗锯齿 四、添加光源 1.Light Explorer窗口 2.光照探针组 3.反射探针 4.烘焙光照贴图 本文主要是了解HDRP基本操作&#xf…

高完整性系统:Hoare Logic

目录 1. 霍尔逻辑&#xff08;Proving Programs Correct&#xff09; 1.1 警告&#xff08;Caveats&#xff09; 1.2 误解&#xff08;Misconception&#xff09; 1.3 编程语言&#xff08;Programming Language&#xff09; 1.4 程序&#xff08;Programs&#xff09; 1…

Html源代码加密?

什么是Html源代码加密&#xff1f; 使用JavaScript加密转化技术将Html变为密文&#xff0c;以此保护html源代码&#xff0c;这便是Html源码加密。 同时&#xff0c;这种加密技术还可实现网页反调试、防复制、链接加密等功能。 应用场景 什么情况下需要Html源代码加密&#x…

clipboard复制粘题问题

clipboard复制粘贴问题 简单的clipboard用法引入clipboard使用方法 通过监听获取剪切板数据自定义获取clipboard剪切板值 记录下项目中使用clipboard复制粘题问题 简单的clipboard用法 引入clipboard npm install clipboard --save官网地址:传送门 使用方法 通过监听获取剪切…

基于neo4图数据库的简易对话系统

文章目录 一、环境二、思路第一步&#xff1a;输入问句第二步&#xff1a;针对问句进行分析&#xff0c;包括意图识别和实体识别第三步&#xff1a;问句转化第四步&#xff1a;问题回答的模板设计 三、代码解读1. 项目结构2. 数据说明3. 主文件kbqa_test.py解读4. entity_extra…

【第三方库】PHP实现创建PDF文件和编辑PDF文件

目录 引入Setasign/fpdf、Setasign/fpdi 解决写入中文时乱码问题 1.下载并放置中文语言包&#xff08;他人封装&#xff09;&#xff1a;https://github.com/DCgithub21/cd_FPDF 2.编写并运行生成字体文件的程序文件&#xff08;addFont.php&#xff09; 中文字体举例&…

【数据结构】第七周

稀疏矩阵快速转置 【问题描述】 稀疏矩阵的存储不宜用二维数组存储每个元素&#xff0c;那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组&#xff0c;由非零元素在该稀疏矩阵中的位置&#xff08;行号…

xxl-job的部署及springboot集成使用

介绍 XXL-Job是一个分布式任务调度平台&#xff0c;可进行任务调度、管理和监控&#xff0c;并提供任务分片、失败重试、动态分配等功能。它是一个开源项目&#xff0c;基于Spring Boot和Quartz开发&#xff0c;支持常见的任务调度场景。 XXL-Job的使用相对简单&#xff0c;只…

自学网络安全最细规划(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

微信小程序后台:解决微信扫普通链接地址无法跳转到体验版微信的问题,配置普通链接二维码规则解释和理解

微信小程序后台&#xff1a;解决微信扫普通链接地址无法跳转到体验版微信的问题&#xff0c;配置普通链接二维码规则解释和理解 一、现象与原因 最近突然发现微信管理平台中&#xff0c;设置好的普通二维码连接跳转到体验版小程序的功能&#xff0c;没有区分体验版和生产版&a…

条件变量基本使用

一、条件变量 应用场景&#xff1a;生产者消费者问题&#xff0c;是线程同步的一种手段。 必要性&#xff1a;为了实现等待某个资源&#xff0c;让线程休眠。提高运行效率 int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex); int pthr…

手把手教你做独立t检验

一、案例介绍 为研究国产四类新药阿卡波糖胶囊的降血糖效果&#xff0c;某医院用40名2型糖尿病患者进行同期随机对照试验。研究者将这些患者随机等分到试验组&#xff08;用阿卡波糖胶囊&#xff09;和对照组&#xff08;用拜唐苹胶囊&#xff09;&#xff0c;分别测得试验开始…