Docker compose 部署 Confluence 和 Jira
环境信息
- Docker 26.1.1
- Confluence Image: haxqer/confluence:9.0.2
- Jira Image: atlassian/jira-software:9.12.11
- postgresql 13
配置流程
创建项目所需新目录,用于存储持久化数据
mkdir -p /opt/devops/{confluence,jira,postgresql} |
下载 atlassian-agent.jar 文件,将其分别放置在 ./confluence/atlassian-agent.jar 和 ./jira/atlassian-agent.jar ,用于之后为 Confluence 和 Jira 生成 License
docker-compose.yaml 文件内容如下
vservices: |
启动容器
docker compose up -d |
postgres 数据库启动正常后,执行以下命令为 Jira 创建数据库,Confluece 数据库在容器启动是会自动创建。
docker compose exec -it postgres-db psql -U postgres -c "CREATE DATABASE jira WITH ENCODING='UTF8' LC_COLLATE='en_US.utf8' LC_CTYPE='en_US.utf8' CONNECTION LIMIT=-1;" |
Confluence 初始化部署
浏览器访问 http://<IP>:8090 在 Confluence 初始化页面拿到 Server ID
登录 Confluence 容器,执行以下命令获取破解得 License
docker compose exec -it confluence bash |
命令参数说明:
-d调试模式 必选,用于输出生成的许可证信息。
-m电子邮箱 随便填 ,如devops@example.com。
-n用户名 随便填 ,如 Organization_Admin。
-p产品标识 不可乱填 。Confluence 是conf,Jira 是jira,Bitbucket 是bitbucket。
-o组织/URL 建议填你的访问地址,如https://wiki.mysite.com。
-sServer ID 核心参数。必须填 Web 页面上显示的那个 16 位代码 。
License 验证成功后,填写数据库连接信息并测试连接成功
Jira 初始化部署
浏览器访问 http://<IP>:8080 打开 Jira 初始化页面,在 Jira setup 中选择 I'll set it up myself 。因为后面要指定数据库信息,因此要选择自定义。
根据提示填入数据库连接信息,测试无误后,到 Specify your license key 页面,复制 Server ID
登入 jira 容器,使用以下命令为 Jira 生成 License
root@69487899ebea:/var/atlassian/application-data/jira# java -jar /var/atlassian/application-data/jira/atlassian-agent.jar -d -p jira -m Hello@world.com -n Hello@world.com -o your-org -s BYTU-X57R-U6U3-LSIB |
注意其中的参数
-p jira
根据提示完成其他配置即可开始使用 Jira。
Confluence 迁移
部署好相同版本的 Confluence 和 PostgreSQL 环境,
在开始之前,请确保:
- 停止旧环境和新环境的 Confluence 容器,以保证数据一致性。
- 确认新环境的 PostgreSQL 13 已经启动,并创建了一个空的数据库(例如名为
confluence)。
迁移 PostgreSQL 数据库
由于版本一致,直接使用
pg_dump是最稳妥的方案。docker exec -t <旧数据库容器名> pg_dump -U <用户名> <数据库名> > confluence_db.sql
先删除新环境中的数据库
confluence,再新建psql -h <HOST> -U postgres -d postgres
postgres=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+----------+----------+-------------+-------------+-----------------------
confluence | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
jira | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin
template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin +
| | | | | rdsadmin=CTc/rdsadmin
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(6 rows)
postgres=> DROP DATABASE confluence;
DROP DATABASE
postgres=>
postgres=> CREATE DATABASE confluence;
CREATE DATABASE然后导入备份数据,将
confluence_db.sql拷贝到新服务器,然后执行:cat confluence_db.sql | docker exec -i <新数据库容器名> psql -U <用户名> -d <数据库名>
迁移 Confluence Home 目录
Confluence 的用户附件、索引、插件配置等都存储在 Home 目录下。进入旧服务器的映射目录,执行
tar -zcvf confluence_home_backup.tar.gz /path/to/old/confluence_home
将备份文件传输到新 Confluence 环境 Home 目录并解压
修改配置文件(如果数据库连接变了)
如果新环境的数据库 IP、端口或密码与旧环境不同,你需要修改新环境 Home 目录下的配置文件:
文件路径:
<confluence-home>/confluence.cfg.xml
迁移完成后,重启 Confluence,即可加载到旧环境中的数据。
常见问题
迁移后文档无法编辑
迁移完成后,Confluence 打开正常,数据已经恢复,但是编辑文档保存时报错: Something went wrong after loading the editor. Copy your unsaved changes and refresh the page to keep editing.
这个错误通常意味着 Confluence 协作编辑(Collaborative Editing) 服务出现了通讯故障。在 Confluence 9.0.2 中,这通常与 Synchrony(负责实时协作的组件)的配置或网络环境有关。
可以 刷新 Synchrony 状态 解决
以管理员身份登录 Confluence。
前往 管理 (Confluence administration) > 协作编辑 (Collaborative editing) 。
点击 Change mode ,将其切换为
Disabled。等待几秒钟后,重新切换回
Enabled。这会重启 Synchrony 进程并清理过时的锁定状态。




















