使用 Docker 部署时无法通过 IP 访问 Atlassian Confluence

使用 Docker 部署时无法通过 IP 访问 Atlassian Confluence

我正在 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

相关内容