我正在 Docker 环境中部署 Jira、Confluence 和 Bitbucket。
配置相当标准。使用 Atlassian 镜像、应用程序数据的主机卷等。
Jira 和 Bitbucket 运行良好,可以通过<ip>:<port>
同一网络访问,没有问题。
但是,Confluence 只能使用 从主机访问localhost:<port>
。我花了很多时间试图理解为什么我无法<ip>:<port>
使用 Confluence,而其他应用程序却运行良好。
下面是我为 Confluence 编写的 docker-compose 代码片段:
confluence:
image: atlassian/confluence-server:7.4.0
networks:
- atlassian
volumes:
- /atlassian/application-data/confluence:/var/atlassian/application-data/confluence
environment:
CONFLUENCE_HOME: /var/atlassian/application-data/confluence
ATL_JDBC_URL: jdbc:postgresql://database:5432/confluence
ATL_JDBC_USER: postgres
ATL_JDBC_PASSWORD: postgres
ATL_DB_TYPE: postgresql
JVM_MINIMUM_MEMORY: 4g
JVM_MAXIMUM_MEMORY: 8g
ports:
- "8090:8090"
- "8091:8091"
deploy:
resources:
reservations:
memory: 8G
我没有其他配置,或者任何东西。Jira 和 Bitbucket 在 Compose 文件中的设置方式完全相同,只是它们自己的端口被公开。
我唯一能看到的是 Confluence 在 7+ 版本中移至了 Tomcat 9 和 Java 11,并且内置功能中可能有一些server.xml
我需要更改的东西,但我无法弄清楚。
知道为什么我无法通过远程访问 Confluence<ip>:<port>
但可以访问其他工具吗?
已完成故障排除:
- 本系统运行于 CentOS 7
- firewalld 和 selinux 已关闭
- 没有其他网络配置会阻止 8090 访问
- 我还尝试将其他外部端口映射到内部 8090,但没有成功
- 我可以手动部署 Confluence 7.4.0 TAR,并且可以通过 8090 远程访问它
- 我尝试了所有 Docker 配置:docker run、docker-compose 和 swarm。结果相同
答案1
解决方案 1:您可以按照文章更改 baseurl:配置服务器基本 URL
此配置存储在数据库中,但不建议直接在数据库中更改它。
解决方案 2:使用反向代理并配置以下内容Confluence 容器环境变量:
ATL_PROXY_NAME
(例如confluence.example.com)ATL_PROXY_PORT
(例如80)