Docker部署Jira & Confluence--基于Mysql数据库

本文档详细介绍了如何使用Docker部署Atlassian的Jira、Confluence和Mysql,并提供了配置参数、解决数据库兼容性问题的方法。同时,还涵盖了免费PJ的步骤,包括下载PJ包、生成授权码、上传jar包和安装插件,以实现Atlassian产品的免费使用。最后,讲解了Confluence与Jira的用户对接配置,确保用户身份验证的无缝衔接。
摘要由CSDN通过智能技术生成

服务规划

服务名称数据目录访问端口/数据端口客户端访问地址
mysql/data/atlassian/mysql83063.1.101.36:8306
jira/data/atlassian/jira80803.1.101.36:8080
confluence/data/atlassian/confluence8090/80913.1.101.36:8090

基础环境配置

创建应用数据目录

mkdir -pv /data/atlassian/mysql/{data,mysql-files,conf,logs}
mkdir -pv /data/atlassian/confluence/{data,logs}
mkdir -pv /data/atlassian/jira/{data,logs}
chown 999.999 /data/atlassian/mysql -R
chown 2002.2002 /data/atlassian/confluence -R
chown 2001.2001 /data/atlassian/jira/{data,logs} -R

创建docker-compose配置文件目录

mkdir -pv /data/docker-compose/atlassian/{mysql,jira,confluence}

Mysql部署

my.cnf配置文件

cat > /data/atlassian/mysql/conf/my.cnf << 'EOF'
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8mb4

[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "
no-auto-rehash
default-character-set = utf8mb4

[mysqld]
user = mysql
port = 3306
skip-name-resolve

# for confluence
character-set-server = utf8mb4
collation-server = utf8mb4_bin
transaction-isolation = READ-COMMITTED

max_connections       = 1024
max_connect_errors    = 100
wait_timeout          = 100
max_allowed_packet    = 128M
table_open_cache      = 2048
back_log              = 600

default-storage-engine = innodb
log_bin_trust_function_creators = 1

# Log
general_log=off
general_log_file =  /data/mysql/logs/mysql.log
log-error = /data/mysql/logs/error.log

#slowlog慢查询日志
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 2
log_output = FILE
log_queries_not_using_indexes = 0

#global_buffers
innodb_buffer_pool_size = 2G
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2
key_buffer_size = 64M

innodb_log_file_size = 512M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_data_file_path = ibdata1:20M:autoextend

secure_file_priv = /var/lib/mysql
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

[mysqldump]
quick
max_allowed_packet = 32M
EOF

chown 999.999 /data/atlassian/mysql/conf/my.cnf

Mysql参数:

报错: Confluence 不支持数据库排序规则 “utf8mb4_0900_ai_ci",您需要使用 “utf8mb4_bin"
解决方法:
加入参数: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
报错: 您的数据库必须使用'READ-COMMITTED'作为默认隔离级别
解决方法:
加入参数: --transaction-isolation=READ-COMMITTED

docker-compose配置

cat > /data/docker-compose/atlassian/mysql/docker-compose.yml << EOF
version: "3"
services:
  atlassian_db:
    container_name: atlassian_db
    image: mysql:8.0
    ports:
      - 5306:3306
    restart: always
    # docker安全验证
    security_opt:
      - seccomp:unconfined
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/atlassian/mysql/data:/var/lib/mysql
      - /data/atlassian/mysql/mysql-files:/var/lib/mysql-files/
      - /data/atlassian/mysql/logs/:/data/mysql/logs/
      - /data/atlassian/mysql/conf/my.cnf:/etc/mysql/my.cnf
    environment:
      MYSQL_ROOT_PASSWORD: a123456
    command: --default-authentication-plugin=mysql_native_password --skip-name-resolve
    networks:
      - atlassian
networks:
  atlassian:
EOF

启动mysql

docker-compose up -d

创建数据库并授权

# 进入容器
docker-compose exec atlassian_db /bin/bash
# 登录数据库
mysql -uroot -pa123456
# 为jira创建数据库并授权
create database jira;
create user "jira"@"%" identified by "jira";
grant all privileges on jira.* to "jira"@"%";
flush privileges;
# 为confluence创建数据库并授权
create database confluence;
create user "confluence"@"%" identified by "confluence";
grant all privileges on confluence.* to "confluence"@"%";
flush privileges;

Jira部署

docker-compose配置

cat > /data/docker-compose/atlassian/jira/docker-compose.yml << EOF
version: "3"
services:
  jira:
    container_name: jira
    image: atlassian/jira-software:8.14
    restart: always
    ports:
      - 8080:8080
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/atlassian/jira/data:/var/atlassian/application-data/jira
      - /data/atlassian/jira/logs:/opt/atlassian/jira/logs
    environment:
      JVM_MINIMUM_MEMORY: 1024m
      JVM_MAXIMUM_MEMORY: 2048m
      JVM_RESERVED_CODE_CACHE_SIZE: 512m
    deploy:
      resources:
        limits:
           memory: 4G
        reservations:
           memory: 1G
    networks:
      - atlassian
networks:
  atlassian:
EOF

启动JIRA

docker-compose up -d

上传Mysql驱动

下载地址

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.tar.gz
tar -zxf mysql-connector-java-8.0.25.tar.gz
docker cp mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
docker exec jira chmod +r /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/mysql-connector-java-8.0.25.jar

免费(PJ)方法

  1. PJ包下载

atlassian-extras-3.2.jar下载地址

提取码:txpp

  1. 破解包上传
docker cp atlassian-extras-3.2.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar
docker exec jira chmod +r /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar
docker exec jira ls /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar -l

安装JIRA

重启容器,生效所有导入jar包

docker-compose restart jira

访问地址:

http://3.1.101.36:8080

语言选择->中文

数据库信息:

连接数据库:其他数据库
数据库类型:mysql8.0
主机:3.1.101.36
端口:5306
数据库:jira
用户名:jira
密码:jira

根据提示进行安装即可,安装后应用程序中查看是否有29天限制,如果没有,即PJ成功

Confluence部署

docker-compose配置

cat > /data/docker-compose/atlassian/confluence/docker-compose.yml << EOF
version: "3"
services:
  confluence:
    container_name: confluence
    image: atlassian/confluence-server:7.13.0-m03
    restart: always
    ports:
      - 8090:8090
      - 8091:8091
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/atlassian/confluence/data:/var/atlassian/application-data/confluence
      - /data/atlassian/confluence/logs:/opt/atlassian/confluence/logs
    environment:
      JVM_MINIMUM_MEMORY: 1024m
      JVM_MAXIMUM_MEMORY: 2048m
      JVM_RESERVED_CODE_CACHE_SIZE: 512m
    deploy:
      resources:
        limits:
           memory: 4G
        reservations:
           memory: 1G
    networks:
      - atlassian
networks:
  atlassian:
EOF

启动confluence

docker-compose up -d

上传Mysql驱动

下载地址

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.tar.gz
tar -zxf mysql-connector-java-8.0.25.tar.gz
docker cp mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
docker exec confluence chmod +r /opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-8.0.25.jar

免费(PJ)方法

访问地址: http://3.1.101.36:8090

到输入授权码页面进行如下操作

  1. 导出Jar包
1. 从docker容器导出到服务器,并重命名为atlassian-extras-2.4.jar
docker cp confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /usr/local/src/atlassian-extras-2.4.jar
2. 从服务器导出到windows环境
将atlassian-extras-2.4.jar拷贝到windows环境(已经安装了jdk环境)
  1. 下载PJ文件

confluence_keygen下载地址

下载码: zsu5

  1. 生成新jar包
在win环境上执行confluence_keygen.jar
弹出框中输入NAME和ServerID(就是授权页面中的服务器ID)
然后点击patch,选择atlassian-extras-2.4.jar,点击gen生成授权码,将授权码保存; 生成授权码后会将原来的atlassian-extras-2.4.jar备份,然后生成一个新的atlassian-extras-2.4.jar
  1. 上传jar包
1. 将新的atlassian-extras-2.4.jar上传到服务器
2. 从服务器导入docker容器
docker cp atlassian-extras-2.4.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
docker exec confluence chmod +r /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
docker exec confluence ls -l /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar

安装Confluence

重启容器,生效所有导入jar包

docker-compose restart confluence

重启docker容器(加载新导入的jar包),重复上面的登录操作,进入到授权页面,输入上面保存的授权码,点击下一步

配置数据库

  • 数据库选择mysql

连接方式(任选其一即可)

  • 通过IP连接
Hostname: 3.1.101.36
Port: 5306
Database name: confluence
Username: confluence
Password: confluence
  • 通过JDBC连接
Database URL: jdbc:mysql://3.1.101.36:5306/confluence?useUnicode=true&characterEncoding=utf8
Username: confluence
Password: confluence

连接数据库,提示 成功! 成功连接数据库。即mysql连接成功, 点击下一步,等待安装成功即可

安装免费插件

  • 在线安装

管理->应用管理->搜索插件->安装

  • 离线安装

插件下载地址

搜索插件->下载免费版(Data Center版)->保存到本地

管理->应用管理->上传应用->上传所下插件

Confluence与Jira用户对接

互相添加应用程序

登录Confluence:

管理->应用程序链接,在此处根据提示添加jira的的配置,本地验证模式选择为-OAuth(模拟)

根据提示,切换到jira,添加Confluence的配置

Jira用户配置

添加Jira用户服务器

管理->用户管理->Jira用户服务器->添加应用程序->根据提示数据应用程序名称和密码,

IP填写Confluence的docker容器IP,否则连接时会报如下错误

连接测试失败。来自服务器的响应:
com.atlassian.crowd.exception.ApplicationPermissionException: Forbidden (403) 加载页面时发生 "403 - Forbidden" 错误 client.forbidden.exception 转换到Jira主页

查看容器IP命令:

docker inspect 容器名

配置Jira用户组

分别添加confluence-administrators和confluence-users用户组(用于登录confluence),在组中添加对应用户

其余权限设定:

1. 管理->应用程序->应用程序访问权中为分组授权
2. 管理->问题->权限方案 中配置更加详细的权限,或者新增权限方案
3. 项目->项目设置->权限 根据不同项目调用不同权限方案

Confluence用户目录配置

  1. 添加用户目录

管理->用户管理->用户目录添加目录->选择atlassian Jira->根据提示输入名称(自己起), jira服务器地址, 上面定义的用户服务器的用户名密码->测试-测试并保存

  1. 调整用户目录顺序

将添加的jira用户目录,调整至第一位,查看用户,如果没有同步,点击手动同步

其余权限设定:

管理->用户&安全中, 为用户组配置全局权限和空间权限

## 测试验证

在Jira中创建一个新用户组g1和一个新用户u1,将u1添加到g1组和confluence-users组,并配置对应权限,点击左上角应用程序导航器,切换到Confluence,使用此用户登录,如果可以正常登录,证明Confluence调用jira用户成功

参考链接

https://www.cwiki.us/display/CONFLUENCEWIKI/Connecting+to+Crowd+or+Jira+for+User+Management

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值