定制自己的Confluence容器化

春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述定制自己的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:8090harbor.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 安装部署,这里不再叙述~
定制自己的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 bb5ee62eb6eaharbor.test.com/confluence/wiki-confluence-ci:20210903"/usr/bin/supervisord"4 minutes agoUp 4 minutes0.0.0.0:3306-> 3306/tcp, 0.0.0.0:8090-> 8090/tcpwutf-wiki

我们可以看到服务正常启动,我们之前创建的test空间还在,即数据无丢失!
我们经常也会碰到这样的启动,有人重新启动了docker服务,由于我们设置了--restart=always,所以在wutf-wiki也会随着启动但是会报错,如下:
【定制自己的Confluence容器化】
定制自己的Confluence容器化

文章图片

我们查看下 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

有空再深度优化下~

    推荐阅读