0

容器指南之自定义 Confluence 容器镜像

 1 year ago
source link: https://blog.51cto.com/waringid/5930128
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

容器指南之自定义 Confluence 容器镜像

精选 原创

Confluence 的安装配置操作步骤繁琐,有很多需要注意的地方。不同版本间的配置都存在差异。利用 Docker 的功能实现配置项目的整合

容器指南之第一个容器       ​https://blog.51cto.com/waringid/5904849​

容器指南之容器架构及常用指令    ​ ​https://blog.51cto.com/waringid/5913145​

容器指南之日常运维   ​ ​https://blog.51cto.com/waringid/5914178​

容器指南之自定义LNMP容器镜像 ​ ​https://blog.51cto.com/waringid/5920404​

Docker For Windows 安装配置及常用维护   ​ ​https://blog.51cto.com/waringid/5917666​

2.创建新镜像

2.1.生成合适的版本

cat > opt/wiki/Dockfile << EOF
FROM atlassian/confluence-server
RUN openssl s_client -connect marketplace.atlassian.com:443 < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/marketplace.atlassian.com.crt
RUN keytool -import -trustcacerts -alias proxy_root -file /tmp/marketplace.atlassian.com.crt -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt
COPY --chown=confluence:confluence ./deps/mysql-connector-java-5.1.49.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/
COPY --chown=confluence:confluence ./deps/mysql-connector-java-8.0.28.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/
COPY ./deps/atlassian-agent.jar /var/atlassian/
RUN chmod +x /var/atlassian/atlassian-agent.jar
COPY ./deps/simsun.ttc /usr/local/share/fonts/simsun.ttc
RUN mv /opt/atlassian/confluence/bin/setenv.sh /tmp
COPY ./deps/setenv.sh /opt/atlassian/confluence/bin/
EOF
docker build -t confluence:7.7 .

2.2.解决时间戳不正确

默认 Confluence 使用的是东一区(零时区)的时间制式,想解决时区问题,需要先在 environment 字段内指定 CATALINA_OPTS 参数内容。也可以把对应的参数整合到 setenv.sh 文件中

environment:
- 'CATALINA_OPTS= -Duser.timezone=GMT+08'

另外,为了避免容器和宿主机时间不一致,可以将本机的 localtime 挂载到容器中。

volumes:
- /etc/localtime:/etc/localtime:ro

2.3.解决应用卡顿

之前的完整配置将会使用 Confluence 默认资源运行服务,程序最大使用内存是 1GB,当团队人数和内容多了之后,由于资源不足,会让服务运行变慢,最简单的解决方案就是增加资源。只需要在 environment 字段内声明下面内容即可。

environment:
- 'JVM_MINIMUM_MEMORY=4096m'
- 'JVM_MAXIMUM_MEMORY=8192m'

2.4.解决中文文档不能预览

由于默认容器镜像不包含中文字体,当我们想预览一个中文文档的时候,得到的结果会是一堆“口口口”方块。

解决这个问题的第一步是为镜像系统安装中文字体,下载一些中文字体 ( ttf/ttc ),比如宋体、楷体,将文件命名为:simsun.ttf、simkai.ttc,然后保存在 fonts 文件夹中,然后挂载到容器系统中。

environment:
- 'CATALINA_OPTS= -Duser.timezone=GMT+08 -Dconfluence.document.conversion.fontpath=/usr/local/share/fonts/ '

2.5.解决应用市场不能访问

keytool -import -trustcacerts -alias proxy_root -file marketplace.atlassian.com.crt -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt

3.docker-compose 文件

version: '3'
services:

db:
image: mysql:8.0.27
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
security_opt:
- seccomp:unconfined
environment:
MYSQL_ROOT_PASSWORD: www.myj123.com
volumes:
- /opt/confluence/mysql/backup:/backups
- /opt/confluence/mysql/mysql-files:/var/lib/mysql-files
- /opt/confluence/mysql/data:/var/lib/mysql
- /opt/confluence/mysql/conf/my.cnf:/etc/mysql/my.cnf
networks:
lnmp-net:
ipv4_address: 172.18.0.3


wiki:
image: confluence:7.7
container_name: confluence
ports:
- "80:8090"
- "8091:8091"
environment:
- 'JVM_RESERVED_CODE_CACHE_SIZE=512m'
volumes:
- /opt/confluence/data:/var/atlassian/application-data/confluence
- /etc/localtime:/etc/localtime:ro

networks:
lnmp-net:
ipv4_address: 172.18.0.2
depends_on:
- db

networks:
lnmp-net:
ipam:
config:
- subnet: "172.18.0.0/24"

4.生成序列号

docker exec wiki1 java -jar /opt/atlassian/confluence/atlassian-agent.jar \
-p conf -d \
-m [email protected] \
-n name \
-o http://127.0.0.1:8090 \
-s BBPJ-TRXY-8MVX-2LDO # 替换为页面上显示的server id

docker exec wiki1 java -jar /opt/atlassian/confluence/atlassian-agent.jar \
-p com.mxgraph.confluence.plugins.diagramly \
-d -m [email protected] \
-n name \
-o http://127.0.0.1:8090 \
-s BBPJ-TRXY-8MVX-2LDO # 替换为页面上显示的server id
容器指南之自定义 Confluence 容器镜像_Docker-compose
容器指南之自定义 Confluence 容器镜像_confluence7.6_02
  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK