Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录
目录
1、介绍
1.1、什么是 Crucible?
Crucible 是一个协作式代码审查,以下是官网的功能介绍:
交付高质量代码
跨 SVN、Git、Mercurial,、CVS 和 Perforce 审查代码、讨论更改、共享知识和识别缺陷。审查
创建基于工作流的正式或快速代码审查,并指派团队成员作为审查者。讨论
将所有代码审查转换为线程讨论,并针对具体源代码行、文件或整个变更集合进行评论。跟踪
借助提交、审查和评论等代码活动的统一视图,针对重要事项采取行动。报告
通过代码库中尚未得到充分审查的部分数据提高代码质量。快速查看审查状态及可能执行审查的人员。
2、Crucible 的官网在哪里?
3、如何下载安装?
我将 Crucible 4.6.1 直接封装到了 Docker 镜像中,如何安装Docker,请参考这篇文章<Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例>,Crucible 4.6.1版本中,包含了 Fisheye,就不单独讲如何安装 Fisheye 。
以下实例中安装 Crucible 4.6.1 ,需要用到 MySQL 5.7,如果你已经安装完Docker,可以下载已经做好的 <docker-compose.yml>。文件内容如下,请注意修改/srv/your_folder/my.ini的位置为你下载后的文件位置:
version: '3'
# https://docs.docker.com/compose/compose-file/
# support Docker version 17.05.0-ce
services:
#################################### crucible ######################################################
##############################
# crucible_mysql
##############################
crucible_mysql:
image: idoall/mysql:5.7
hostname: crucible_mysql
ports:
- "6033:3306"
volumes:
- /srv/your_folder/my.ini:/etc/mysql/my.cnf
networks:
- mshk-crucible
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=crucible
- MYSQL_USER=crucible
- MYSQL_PASSWORD=crucible_mshk
- character-set-server=utf8
- collation-server=utf8_bin
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
##############################
# crucible
##############################
crucible:
image: idoall/ubuntu16.04-jira-crucible:4.6.1
hostname: crucible
ports:
- "80:8060"
networks:
- mshk-crucible
depends_on:
- crucible_mysql
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
# 统一网络设置
networks:
mshk-crucible:
driver: overlay
我们运行以下命令,使用 Docker Stack 的编排服务,来创建 Crucible 4.6.1 以及 MySQL 5.7 服务:
$ docker stack deploy -c docker-compose.yml mshk_crucible
Creating network mshk_crucible_mshk-crucible
Creating service mshk_crucible_crucible
Creating service mshk_crucible_crucible_mysql
启动成功后,使用下面的命令,可以看到 Crucible 4.6.1 和 MySQL 5.7 的服务运行状态:
$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
jortvvf4593r mshk_crucible_crucible replicated 1/1 idoall/ubuntu16.04-jira-crucible:4.6.1 *:80->8060/tcp
2kaku3m4yjzd mshk_crucible_crucible_mysql replicated 1/1 idoall/mysql:5.7 *:6033->3306/tcp
再等几分钟以后,在<docker-compose.yml>文件中,可以看到,我们对 Crucible 做了80->8060端口的映射,所以打开:http://localhost ,能够看到如下页面,说明运行成功:
这时的等待是因为
Crucible的服务需要启动,MySQL 5.7的数据库需要创建。

4、对 Crucible 进行配置
4.1、破解 Crucible 第一步
Crucible 4.6.1 的破解文件已经打包到了 Docker 中。
先用 docker ps 命令,查看服务生成的容器名称,本文测试时生成的容器名称是 mshk_crucible_crucible.1.zro8f01t4ts07npflxhsnzwkn:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e68cb73ae195 idoall/ubuntu16.04-jira-crucible:4.6.1 "/bin/bash -e /init/…" 7 minutes ago Up 7 minutes 8060/tcp mshk_crucible_crucible.1.zro8f01t4ts07npflxhsnzwkn
32b377530f1a idoall/mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 3306/tcp mshk_crucible_crucible_mysql.1.y3x8xlkch7tkk4xvley7kcvx9
Docker 编排服务后的容器名称比较长,把容器名称赋值到一个变量CONTAINERNAME ,这样后面使用起来会很方便。
将要破解的文件、破解工具从容器中复制到本地,并将要破解的文件atlassian-extras-2.5.jar重命名为atlassian-extras-2.3.1-SNAPSHOT.jar:
$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_crucible_crucible.1`
$ docker cp $CONTAINERNAME:/home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar ./atlassian-extras-2.3.1-SNAPSHOT.jar
$ docker cp $CONTAINERNAME:/usr/src/_crucible/crucible_keygen.jar .
在当前目录,运行以下命令,打开破解文件,在弹出的破解文件窗口中,点击.patch!,找到刚才从容器中复制出来的atlassian-extras-2.3.1-SNAPSHOT.jar文件。破解成功后,在破解工具的左下方,会提示jar successfully patched,这时不要着急关闭破解文件的窗口,后面还会用到。
$ java -jar crucible_keygen.jar

停止 Crucible 容器运行的服务;同时将 Crucible 容器的原文件 atlassian-extras-2.3.1-SNAPSHOT.jar 重命名为atlassian-extras-2.3.1-SNAPSHOT.jar.bak做备份;再将我们破解后的atlassian-extras-2.3.1-SNAPSHOT.jar文件,复制到容器中重命名为atlassian-extras-2.5.jar ;启动容器;下面是本次操作的命令:
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crucible/bin/stop.sh;mv /home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar /home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar.bak'
$ docker cp atlassian-extras-2.3.1-SNAPSHOT.jar $CONTAINERNAME:/home/work/_app/_jira_crucible/lib/atlassian-extras-2.5.jar
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crucible/bin/start.sh'
这时在浏览器,输入 http://localhost,打开 Crucible ,能够打开以界面,说明破解的第一步成功。
4.2、破解 Crucible 第二步,获取授权许可
点击 Enter existing license,在获取授权码时,回到我们刚才打开的破解文件窗口,输入Name、Email、Organization、Server ID,点击.gen!,生成授权码,并将授权码复制到页面中,点击Next。

4.2、连接到JIRA Connect to JIRA
如果之前搭建过 JIRA (如何搭建JIRA,请参考 <Docker 创建 Jira Core/SoftWare 7.12.3 中文版>),在 JIRA Base URL 输入 JIRA的URL地址,在Admin Username 输入超级管理员的帐号,在 Admin Password 输入超级管理员的密码, Advanced Options... 在 Crucible Base URL 输入当前 Crucible 配置的域名,然后点击 Connect to JIRA .

4.3、设置默认管理员帐号 Set administrator password
输入Create password、Confirm password,点击Next。

4.7、完成安装 Start working with Crucible
能够看到安装完成的页面,点击 add repository,输入 超级管理员 的密码,就可以进入到 Crucibile 的配置页面

4.8、查看破解后的授权信息
点击左侧的 System Information,可以看到 License 信息,过期日期已经延长到了2337年。

做完上面的步骤,Crucible 的安装基本结束。
4.9、设置电子邮件 Mail Server
登录以后,在左侧找到Global Settings->Server Settings,拖动页面,可以看到 Mail Server,然后点击 Edit config,去进行邮件配置。
4.10、设置数据库 Database Configuration
登录以后,在左侧找到System Settings->DataBase,可以看到 Database Configuration,然后点击 Edit,去进行数据库配置。
在 Type 选择 MySQL, 在 URL 输入 jdbc:mysql://crucible_mysql:3306/crucible,User Name 输入 crucible,Password 输入 crucible_mshk ,点击 Test connection,能够看到提示 Connection succeeded ,最后点击 Save & Migrate进行保存和数据迁移,在弹出层上能够看到运行成功。

5、设置 Crucible 使用 Crowd 认证
5.1、在 Crowd 中添加 Crucible 应用程序
步骤可以参考 文章<Docker 创建 Crowd 3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 登录>的 4.12章节:添加 JIRA 和 Confluence 应用程序,步骤一样,只是在选择 Application type 时,在下拉框中选择 Crucible,输入 Name 为 crucible,Description是Crucible Application,再设置密码123456。
分别再在 Crowd 中添加 crucible-users 和 fisheye-users 两个用户组
5.2、设置 Crucible 的用户目录
第一步:使用管理员帐号登录到 Crucible 后台,左侧点击 User Settings->User Directories,然后点击 Add Directory 在弹出的窗口中选择 Atlassian Crowd ,点击 Next。
第二步:在 Application Name 处输入刚才设置的 crucible 应用程序名称 crucible,在应用程序密码输入刚才我们设置的密码123456,点击 Test Settings,能够看到如下图中有绿色的提示框,提示 Connection test successful. ,最后点 Save and Test。
第三步:在 用户目录,可以看到,我们刚添加的 Crowd Server 目录。

调整 Crowd Server 目录的顺序到第一行,调整后的顺序如下:

5.3、启用 Crucible 与 Crowd 的 SSO 集成登录
修改 Crucible 容器中的文件 /home/work/_data/_jira_crucible/config.xml ,添加 <crowd sso-enabled="true"/> 注册下面添加的位置,不要错了。
...
<security allow-anon="true" allow-cru-anon="true">
<built-in>
<signup enabled="true"/>
</built-in>
<!-- Crowd 的 SSO 支持 -->
<crowd sso-enabled="true"/>
<admins>
<system-admins/>
</admins>
<avatar>
<disabled/>
</avatar>
</security>
...
通过以下命令,重启 Crucible 容器内的服务,使用在Crowd 中配置的用户登录,就可以测试效果了。
$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_crucible_crucible.1`
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crucible/bin/stop.sh;/home/work/_app/_jira_crucible/bin/start.sh'
6、相关文章
6.1、Crucible Adding an Application
6.2、backing-up-and-restoring-crucible-data
博文作者:迦壹
博客地址:Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录
转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!
比特币地址:1KdgydfKMcFVpicj5w4vyn3T88dwjBst6Y
以太坊地址:0xbB0a92d634D7b9Ac69079ed0e521CC2e0a97c420
Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录的更多相关文章
- Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录
目录 目录 1.介绍 1.1.什么是 Bamboo? 2.Bamboo 的官网在哪里? 3.如何下载安装? 4.对 Bamboo 进行配置 4.1.获取授权许可 4.2.一般配置 4.3.数据库配置 ...
- Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录
目录 目录 1.介绍 1.1.什么是Crowd? 2.Crowd 的官网在哪里? 3.如何下载安装? 4.对 Crowd 进行配置 4.1.破解 Crowd 第一步 4.2.破解 Crowd 第二步, ...
- GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱
GitLab11.3.9 的安装方法: 点击查看. Crowd3.3.2 的安装方法:点击查看. 需要先在 Crowd 创建应用程序,参考 <Docker 创建 Crowd3.3.2 以 ...
- Docker创建支持ssh服务的容器和镜像
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...
- Docker创建MySQL集装箱
原文链接:Docker创建MySQL集装箱 这样做的目的是创建一个MySQL的image,出来的容器里自己主动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个文件夹并在文件夹下创建一个Doc ...
- Docker 创建 Jira Core(Jira SoftWare) 7.12.3 中文版
目录 目录 1.介绍 1.1.什么是 JIRA Core? 1.2.什么是 JIRA SoftWare 2.JIRA 的官网在哪里? 3.如何下载安装? 4.对 JIRA 进行配置 4.1.JIRA ...
- Docker 创建 Confluence6.12.2 中文版
目录 目录 1.介绍 1.1.什么是Confluence? 2.Confluence的官网在哪里? 3.如何下载安装? 4.对 Confluence 进行配置 4.1.设置 Confluence 4. ...
- Docker创建JIRA 7.2.4中文破解版
目录 目录 1.介绍 1.1.什么是JIRA? 2.JIRA的官网在哪里? 3.如何下载安装? 4.对JIRA进行配置 4.1.打开浏览器:http://localhost:20012 4.2.JIR ...
- Docker 创建容器 查看容器状态 - 三
Docker 创建容器 1.拉取镜像 默认是 docker.io 仓最新镜像 docker pull tomcat 2.运行一个服务容器 docker run -d -p 0.0.0.0:18080: ...
随机推荐
- selenium webdriver (python)的基本用法一
阅在线 AIP 文档:http://selenium.googlecode.com/git/docs/api/py/index.html目录一.selenium+python 环境搭建........ ...
- java并发之非阻塞算法介绍
在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法.在绝大多数项目中,在算法中如果一个线程的挂起没有导致其它的线程挂起,我们就说这个算法是非阻塞的. 为了更好的理解阻塞算 ...
- 异常--java.text.ParseException: Unparseable date
String d = "2015-05-19" SimpleDateFormat sdf = new SimpleDateFormat( "yyyy/MM/dd HH ...
- 在基于Windows系统的PHP虚拟主机上实现域名的301永久重定向
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=581 操作背景: 当网站在更换或添加域名.进行网址规范化或删除旧页面时,出于对用户使用体验和搜索引擎优化方面的考虑就需要 ...
- RedHat 7.0及CentOS 7.0禁止Ping的三种方法
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=538 前言: "Ping"属于ICMP协议(即"Internet控制报文协议") ...
- Kali Linux桥接模式配置DNS服务器
操作环境: 虚拟机操作系统: Kali Linux 2017.2 虚拟化软件: VMWare Workstation 14 pro 操作前的准备: 在设置里将Kali的上网模式设置成"桥接模 ...
- Dubbo源码-Dubbo是如何随心所欲自定义XML标签的
叨叨 今天考虑了很久要不要写这篇文章. 距离<Dubbo源码>系列的开篇到现在已经快两个月时间了.当时是想着工作上的RPC框架使用存在一些让人头疼的问题,就来看看Dubbo给出了一套什么样 ...
- tkinter做一个简单的登陆页面
做一个简单的登陆页面 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("900x3 ...
- 『网络の转载』关于初学者上传文件到github的方法
说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...
- bmob云代码中生成缩略图
function onRequest(request, response, modules) { var options = { url:"https://api.bmob.cn/1/ima ...