docker 部署confluence

embedded/2025/1/19 19:10:48/

1.安装docker的过程就不说了。

2.下载镜像。

docker pull cptactionhank/atlassian-confluence:7.4.0

docker images 

3.下载pojie 包。

https://download.csdn.net/download/liudongyang123/90285042https://download.csdn.net/download/liudongyang123/90285042https://download.csdn.net/download/liudongyang123/90285042

4.编写dockerfile文件,重新打包镜像。

FROM cptactionhank/atlassian-confluence:7.4.0USER root# 将代理破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/confluence/# 因为我的数据库是 8.4.0,所以需要将对应的数据库驱动也放进去
COPY "mysql-connector-j-8.4.0.jar" /opt/atlassian/confluence/confluence/WEB-INF/lib/# 设置启动加载代理包
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/confluence/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/confluence/bin/setenv.sh

atlassian-agent.jar这个通过我方的链接下载就行。

mysql-connector-j-8.4.0.jar 这个到maven仓库直接下载就行。

执行 docker build -f Dockerfile -t confluence:1.0 .

5.执行启动命令

我在启动的时候报错了,错误日志:

library initialization failed - unable to allocate file descriptor table - out of memory

通过增加这个参数解决,具体的可以看我的链接

library initialization failed - unable to allocate file descriptor table - out of memory -CSDN博客文章浏览阅读442次,点赞5次,收藏4次。(1)LimitNOFILE=infinity虽然是不限制,但是在systemctl版本小于234的时候不生效,查看systemctl版本:systemctl--version。(1)LimitNOFILE=infinity虽然是不限制,但是在systemctl版本小于234的时候不生效,查看systemctl版本:systemctl--version。通过日志描述,一开始认为是内存不够用,但是通过调整内存,不起作用,后来在网上查了查,说是文件句柄数的问题。我是通过3.2的办法解决的。https://ldy616.blog.csdn.net/article/details/145234160https://ldy616.blog.csdn.net/article/details/145234160

--ulimit nofile=2024

docker run -d --name confluence --ulimit nofile=2024 -p 28090:8090 -e TZ="Asia/Shanghai" -m 2048M -v /opt/confluence:/var/atlassian/confluence bc14965ddd41

其中 28090是访问的端口号。

6. 配置confluence

通过ip+端口号的方式访问confluence

在这里可以切换语言,选择中文,然后选择第二个。

秘钥获取方式:

进入到镜像中,执行命令:

6.1.docker exec -it xxx /bin/bash。
6.2.进入 /opt/atlassian/confluence.

6.3.执行代码,其中服务器id,就是浏览器上的服务器id,然后将命令的结果粘贴到浏览器。
java -jar atlassian-agent.jar -d -m test@test.com -n BAT -p conf -o http://服务器地址 -s 服务器ID
6.4.配置数据库

这里选择数据库设置页面,数据库链接,选择以字符串的方式进行链接,避免了后面confluence乱码问题:在链接地址上面,加上编码即可:

这里需要注意:

数据库的字符集:要为utf8mb4_bin。

全局事务隔离级别(软件需求):

set global transaction isolation level  READ COMMITTED;
jdbc:mysql://地址:33060/confluence_data?useUnicode=true&characterEncoding=utf8

7.注意:

7.1 如果你自己没有部署jira,在引导的过程中就不需要选择什么模版,直接选择空白项目创建。


http://www.ppmy.cn/embedded/155294.html

相关文章

AI刷题-最小替换子串长度、Bytedance Tree 问题

目录 一、最小替换子串长度 问题描述 输入格式 输出格式 输入样例 1 输出样例 1 输入样例 2 输出样例 2 解题思路: 问题理解 数据结构选择 算法步骤 最终代码: 运行结果: 二、Bytedance Tree 问题 问题描述 输入格式 输…

线上工单引发的思考:Spring Boot 中 @Autowired 与 @Resource 的区别

最近接手了离职同事负责的业务,在处理一个线上工单的时候,看了下历史逻辑,在阅读他们写的代码时,发现他们竟然把Autowired和Resource注解混用。今天就借此机会聊聊SpringBoot项目中这两者之间的区别。 1. 注解来源 Autowired&am…

Asp.Net Core 8.0 使用 Serilog 按日志级别写入日志文件的两种方式

1、所需的Nuget包 本文项目的版本是.NET 8.0,如果使用其它版本安装适配版本即可。 Serilog.AspNetCore(8.0.2) Serilog.Sinks.File(5.0.0) Serilog.Expressions(5.0.0) 2、两种配置方式 2.1 代码形式(Program.cs) 在Program.cs文件中&am…

rabbitmq安装延迟队列

在RabbitMQ中,延迟队列是一种特殊的队列类型。当消息被发送到此类队列后,不会立即投递给消费者,而是会等待预设的一段时间,待延迟期满后才进行投递。这种队列在多种场景下都极具价值,比如可用于处理需要在特定时间触发…

Uniapp判断设备是安卓还是 iOS,并调用不同的方法

在 UniApp 中,可以通过 uni.getSystemInfoSync() 方法来获取设备信息,然后根据系统类型判断当前设备是安卓还是 iOS,并调用不同的方法。 示例代码 export default {onLoad() {this.checkPlatform();},methods: {checkPlatform() {// 获取系…

SQL刷题快速入门(三)

其他章节: SQL刷题快速入门(一) SQL刷题快速入门(二) 承接前两个章节,本系列第三章节主要讲SQL中where和having的作用和区别、 GROUP BY和ORDER BY作用和区别、表与表之间的连接操作(重点&…

【Docker】——安装Docker以及解决常见报错

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

C# 开发aspx文件中js获取<asp:label>的数值

想要实现功能&#xff1a;依据窗口的某些参数&#xff0c;打开新窗口来展示其详细信息。 尝试了以下的三种方法&#xff0c;最终还是选择了【第一种】&#xff0c;剩下两种没有实现。 一、通过<a>标签的方式 在合适的位置&#xff0c;通过<a οnclick"OpenDet…