定制自己的Confluence容器化

Posted 品鉴初心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定制自己的Confluence容器化相关的知识,希望对你有一定的参考价值。

获取 atlassian-confluence-7.4.0-x64.bin

由于文件有些大,另放到 公司共享盘 了~

关键配置文件

文件 说明 备注
mysqld.cnf mysql配置文件 datadir = /data/mysql
reset-passwd.sql mysql初始化sql 密码、授权、建库
supervisord.conf 守护进程服务配置文件 mysql和confluence

镜像打包

without volume

# 打包
docker build -t harbor.test.com/confluence/confluence-ci:20210903 .
# push镜像库
docker push harbor.test.com/confluence/confluence-ci:20210903

with volume

# 打包
docker build -t harbor.test.com/confluence/wiki-confluence-ci:20210903 .
# push镜像库
docker push harbor.test.com/confluence/wiki-confluence-ci:20210903

容器部署 Confluence 服务

Just test

# 仅用于测试
docker run -itd --name wutf-wiki -p 8090:8090 -v /opt:/var/atlassian/application-data/confluence/restore harbor.test.com/confluence/wiki-confluence-ci:20210903

For production

容器启动

# 获取基本的配置文件
docker run -itd --name wutf-wiki -p 8090:8090  harbor.test.com/confluence/wiki-confluence-ci:20210903
docker cp wutf-wiki:/data/mysql /data/mysql/
docker cp wutf-wiki:/opt/atlassian/confluence /data/confluence/
docker cp wutf-wiki:/var/atlassian/application-data /data/application-data/
# 删除 wutf-wiki
docker rm -f wutf-wiki
# 授权
chmod -R 777 mysql/
chmod -R 777 confluence/
chmod -R 777 application-data/
# cat cat start-wiki.sh
docker run -itd --restart=always --name wutf-wiki \\
           -p 8090:8090 \\
           -p 3306:3306 \\
           -v /data/mysql:/data/mysql \\
           -v /data/confluence:/opt/atlassian/confluence \\
           -v /data/application-data:/var/atlassian/application-data \\
           harbor.test.com/confluence/wiki-confluence-ci:20210903
# start service
sh start-wiki.sh
# 查看服务
docker ps |grep wiki

访问 confluence 服务

http://yourIP:8090/

然后进行 confluence 安装部署,这里不再叙述~

测试

我们的 confluence 已经起来了,现在我们将该容器 rm 掉,然后重新启动,看下数据是否还在,具体操作如下:

# rm wutf-wiki
docker rm -f wutf-wiki
# 授权
chmod -R 777 mysql/
# restart service
sh start-wiki.sh
# 查看服务
# docker ps |grep wiki
bb5ee62eb6ea   harbor.test.com/confluence/wiki-confluence-ci:20210903   "/usr/bin/supervisord"   4 minutes ago   Up 4 minutes   0.0.0.0:3306->3306/tcp, 0.0.0.0:8090->8090/tcp   wutf-wiki

我们可以看到服务正常启动,我们之前创建的test空间还在,即数据无丢失!

我们经常也会碰到这样的启动,有人重新启动了docker服务,由于我们设置了--restart=always,所以在wutf-wiki也会随着启动但是会报错,如下:

我们查看下 logs 发现,其实还是mysql目录权限的问题:

2021-09-06 16:01:02,696 INFO spawned: \'mysql\' with pid 10
2021-09-06 16:01:03,657 INFO exited: confluence (exit status 0; not expected)
2021-09-06 16:01:04,661 INFO spawned: \'confluence\' with pid 610
2021-09-06 16:01:04,662 INFO success: mysql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2021-09-06 16:01:05,557 INFO reaped unknown pid 69
2021-09-06 16:01:05,569 INFO exited: confluence (exit status 1; not expected)
2021-09-06 16:01:07,573 INFO spawned: \'confluence\' with pid 717

上面错误处理方法,跟上面一样:

# 授权
chmod -R 777 mysql/
# rm wutf-wiki
docker rm -f wutf-wiki
# restart service
sh start-wiki.sh

以上错误,均是目录权限的问题,我们在 build 镜像时,应该对 mysql 数据库目录增加权限:

chmod -R 777 /data/mysql

有空再深度优化下~

以上是关于定制自己的Confluence容器化的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器实战六:构建定制化镜像

技术干货 | Native 页面下如何实现导航栏的定制化开发?

Confluence 6 中样式化字体

网易云基于Kubernetes的深度定制化实践

[SpringBoot2]定制化原理_SpringBoot定制化组件的几种方式

Gradle 引入本地定制 jar 包