几天前,我的watch望塔用6.15.1-alpine
标签更新了Docker上的Confluence。它使用Atlassians official image托管。自更新以来,Confluence会显示设置屏幕。没有任何机会进入管理面板。当向导继续输入现有安装的服务器凭据时,它会给出一个错误,即已存在安装,如果继续安装将被覆盖。
这是确切版本标签6.15.1
的重新推送,而不是常规版本更新。因此,似乎不可能使用旧的有效图像。其他版本似乎也被重新推了。尝试过一些旧的,也尝试过一个新的,没有成功。
version: "2"
volumes:
confluence-home:
services:
confluence:
container_name: confluence
image: atlassian/confluence-server:6.15.1-alpine
#restart: always
mem_limit: 6g
volumes:
- confluence-home:/var/atlassian/application-data/confluence
- ./confluence.cfg.xml:/var/atlassian/application-data/confluence/confluence.cfg.xml
- ./server.xml:/opt/atlassian/confluence/conf/server.xml
- ./mysql-connector-java-5.1.42-bin.jar:/opt/atlassian/confluence/lib/mysql-connector-java-5.1.42-bin.jar
networks:
- traefik
environment:
- "TZ=Europe/Berlin"
- JVM_MINIMUM_MEMORY=4096m
- JVM_MAXIMUM_MEMORY=4096m
labels:
- "traefik.port=8090"
- "traefik.backend=confluence"
- "traefik.frontend.rule=Host:confluence.my-domain.com"
networks:
traefik:
external: true
答案 0 :(得分:0)
我发现图像上有以下变化:
由于几乎整个主目录都由一个名为bin
的用户拥有,因此日志抛出错误,提示无法写入日志文件:
root@8ac38faa94f1:/var/atlassian/application-data/confluence# ls -l
total 108
drwx------ 2 bin bin 4096 Aug 19 00:03 analytics-logs
drwx------ 3 bin bin 4096 Jun 15 2017 attachments
drwx------ 2 bin bin 24576 Jan 12 2019 backups
[...]
这可以通过执行chown来解决:
docker exec -it confluence bash
chown confluence:confluence -R /var/atlassian/application-data/confluence
我的docker-compose.yml
将一个卷装载到/var/atlassian/application-data/confluence
,并且在这些卷中,confluence.cfg.xml
文件是从当前目录装载的。这种方法比较老,应该将卷中的用户数据与docker-compose.yml
这样的配置文件以及应用程序本身confluence.cfg.xml
分开。
似乎在使用Docker 17.05和Docker-Compose 1.8.0(至少与Confluence结合使用)时无法再正常工作,因此我只是简单地删除了第二个安装并将配置文件放在卷中。
值得注意的是,我安装的配置文件,例如confluence.cfg.xml
和server.xml
被Atlassians容器覆盖。 Their source code shows,他们现在使用的是Jina2,这是一种常见的Python模板引擎,例如太好了A python script在启动时解析这些文件并创建Confluences配置文件,而没有正确检查所有这些文件是否已存在。
以只读方式安装它们会导致应用程序崩溃,因为这在其Python脚本中也未处理。通过分析它们的模板,我了解到它们几乎用环境变量替换了所有配置项。这不是一个坏方法,因此我通过环境变量指定了server.xml
参数,而不是替换整个文件。
就我而言,Confluence位于Traefik反向代理的后面,必须告知Confluence它是最终用户的最终应用程序URL:
environment:
- ATL_proxyName=confluence.my-domain.com
- ATL_proxyPort=443
- ATL_tomcat_scheme=https
docker-compose.yml
通过应用以上所有修改,可以使用以下docker-compose.yml
文件再次访问现有安装:
version: "2"
volumes:
confluence-home:
services:
confluence:
container_name: confluence
image: atlassian/confluence-server:6.15.1
#restart: always
mem_limit: 6g
volumes:
- confluence-home:/var/atlassian/application-data/confluence
- ./mysql-connector-java-5.1.42-bin.jar:/opt/atlassian/confluence/lib/mysql-connector-java-5.1.42-bin.jar
networks:
- traefik
environment:
- "TZ=Europe/Berlin"
- JVM_MINIMUM_MEMORY=4096m
- JVM_MAXIMUM_MEMORY=4096m
- ATL_proxyName=confluence.my-domain.com
- ATL_proxyPort=443
- ATL_tomcat_scheme=https
labels:
- "traefik.port=8090"
- "traefik.backend=confluence"
- "traefik.frontend.rule=Host:confluence.my-domain.com"
networks:
traefik:
external: true