这是一个针对 "2GB 内存服务器 + 外部腾讯云 MySQL + Mac 本地中转" 的完整、避坑版部署教程。
核心难点在于:内存限制 、驱动缺失 以及 云数据库权限绕过。请严格按照步骤执行。
第一阶段:Mac 本地准备 (下载与传输)
利用 Mac 下载镜像,节省服务器带宽。
-
打开 Mac 终端,下载镜像:
Bash
docker pull atlassian/confluence:latest -
打包镜像:
Bash
docker save -o confluence.tar atlassian/confluence:latest -
传输到服务器:
Bash
# 替换 root 和 IP 为你实际的信息 scp confluence.tar root@你的服务器IP:/tmp/
第二阶段:服务器系统优化 (关键救命步骤)
登录你的 Linux 服务器。2GB 内存必须配合 4GB Swap,否则 Java 进程会被杀掉。
-
重置并创建 4GB Swap:
Bash
# 先清理旧的(如果有) sudo swapoff /swapfile sudo rm -rf /swapfile # 创建新的 sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile -
验证:
输入
free -h,确保 Swap 总量显示为 4.0Gi。 -
清理端口:
确保服务器上没有程序占用
8090。如果运行了其他 Java 程序(如禅道),建议先停止。
第三阶段:腾讯云 MySQL 准备
登录你的腾讯云数据库管理台(或通过 Navicat/命令行),执行以下 SQL 语句创建库和用户。
SQL
-- 1. 创建数据库(必须是 utf8mb4 且 bin 排序)
CREATE DATABASE confluence CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-- 2. 创建用户(替换 '你的密码')
CREATE USER 'confluence'@'%' IDENTIFIED BY '你的密码';
-- 3. 授权
GRANT ALL PRIVILEGES ON confluence.* TO 'confluence'@'%';
FLUSH PRIVILEGES;
第四阶段:部署 Confluence 容器
-
导入镜像:
Bash
docker load -i /tmp/confluence.tar -
创建目录:
Bash
mkdir -p /opt/confluence/data cd /opt/confluence -
创建
docker-compose.yml:Bash
vim docker-compose.yml粘贴以下内容:
YAML
version: '3' services: confluence: image: atlassian/confluence:latest container_name: confluence restart: always ports: - "8090:8090" environment: # 【内存锁死】2G 物理内存必须限制 Java 堆内存为 1G - JVM_MINIMUM_MEMORY=1024m - JVM_MAXIMUM_MEMORY=1024m - CATALINA_OPTS=-Ddisable.atlassian.analytics=true volumes: - ./data:/var/atlassian/application-data/confluence deploy: resources: limits: memory: 1800M -
启动容器:
Bash
docker compose up -d
第五阶段:手动注入 MySQL 驱动 (必做)
因为版权原因,镜像里没有 MySQL 驱动,必须手动塞进去。
-
在服务器下载驱动:
Bash
cd /opt/confluence wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar -
复制进容器:
Bash
docker cp mysql-connector-java-8.0.30.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/ -
重启容器生效:
Bash
docker restart confluence(等待 3-5 分钟,通过
docker logs -f confluence确认启动完成)
第六阶段:网页安装与数据库连接 (避坑核心)
-
访问网页 :
http://服务器IP:8090。 -
获取 License:点击页面链接去 Atlassian 官网生成一个 Data Center 试用码填入。
-
部署类型 :选择 Non-clustered (single node)。
-
数据库配置 (关键):
-
Database Type : 选择
MySQL。 -
Setup Type : 务必选择
By connection string(不要选 Simple)。 -
原因 :云数据库通常禁止用户修改全局隔离级别,选 Simple 会报错
Access denied ... SUPER privilege。 -
Database URL: 填入下文(替换你的云数据库 IP):
Plaintext
jdbc:mysql://你的云数据库IP:3306/confluence?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&sessionVariables=transaction_isolation='READ-COMMITTED' -
Username :
confluence -
Password: 你在第三阶段设置的密码。
-
-
后续步骤:
- 点击 Test Connection,成功后点击 Next。
- Load Content : 强烈建议选择 Empty Site(空站点),不要加载示例数据,否则内存容易爆。
- 设置管理员账号,完成安装。
总结
- 内存:靠 4G Swap 续命。
- 驱动 :靠
docker cp手动注入。 - 云数据库 :靠 JDBC URL 中的
sessionVariables绕过权限限制。