基于docker部署testlink并集成mantis

news/2024/12/4 12:35:40/
  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.ppmy.cn/news/107771.html

相关文章

redis哨兵集群

目录 1. redis简介2. redis安装部署2.1 下载安装包2.2 编译安装2.3 配置环境变量2.4 启动redis 3. 配置redis主从3.1 环境说明3.2 修改配置文件3.3 测试主从效果 4. 哨兵集群4.1 哨兵集群简介4.2 配置哨兵集群4.3 模拟故障&#xff0c;进行容灾切换 1. redis简介 Redis&#x…

Django开发中常用的命令总结

1. 创建一个Django Project 1 2 3 4 5 6 7 8 9 10 11 #使用下面的命令可以创建一个project django-admin.py startproject mysite #创建好之后可以看到如下的project结构 mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py…

k8s架构设计之存储设计

当我们使用k8s创建服务的时候,需要使用磁盘进行存储。k8s作为分布式系统,是怎样进行进行存储管理的呢?实际上k8s的存储方案分为两种:一.静态存储 二.动态存储 为了方便,本文主要以nfs来讲解 一.静态存储 当我们一个服务使用固定的存储空间的时候,可以通过创建存储卷pv,…

SpringBoot 集成WebSocket详解

感谢参考文章的博主&#xff0c;关于WebSocket概述和使用写的都很详细&#xff0c;这里结合自己的理解&#xff0c;整理了一下。 一、WebSocket概述 1、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器…

如何搭建第一个SpringBoot+MyBatis项目

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

数据结构基础-链表

2.2 链表 概述 定义 在计算机科学中&#xff0c;链表是数据元素的线性集合&#xff0c;其每个元素都指向下一个元素&#xff0c;元素存储上并不连续 In computer science, a linked list is a linear collection of data elements whose order is not given by their physic…

Eureka入门 ; 服务注册中心,服务注册服务发现;SpringCloud eureka

一、引入 Spring Cloud封装了netflix公司的Eureka模块来进行实现服务治理。 在传统的RPC远程调用框架中&#xff0c;管理每个服务服务之间依赖关系比较复杂&#xff0c;所以需要服务治理&#xff0c;管理服务之间的依赖。可以实现服务注册、调用、负载均衡、容错等技术。 1. 服…

Spring Boot 如何实现异步消息处理

Spring Boot异步消息处理 在现代应用程序中&#xff0c;异步消息处理是一项至关重要的任务。它可以提高应用程序的性能、可伸缩性和可靠性&#xff0c;同时也可以提供更好的用户体验。Spring Boot提供了多种方式来实现异步消息处理&#xff0c;包括使用Spring AMQP、Spring Ka…