docker-compose 安装 conflunuce 6.7.2

使用 docker-compse 编排 confluence 和 MySQL。

docker-compose 安装 conflunuce 6.7.2

使用docker-compose安装

  • 补丁下载
    https://raw.githubusercontent.com/ealebed/confluence/master/atlassian-extras-decoder-v2-3.2.jar

  • jdbc下载
    https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz
    后解压获取到文件mysql-connector-java-5.1.45-bin.jar

  • 创建Confluence数据目录

    mkdir /data/confluence && cd $_
    mkdir files 
    mv atlassian-extras-decoder-v2-3.2.jar mysql-connector-java-5.1.45-bin.jar files
    
  • 创建Dockerfile

    vim Dockerfile

    FROM atlassian/confluence-server
    ADD files/ ${CONFLUENCE_INSTALL_DIR}/confluence/WEB-INF/lib/
    RUN chown -R ${RUN_USER}:${RUN_GROUP}   ${CONFLUENCE_INSTALL_DIR}/confluence/WEB-INF/lib/
    CMD ["/entrypoint.sh", "-fg"]
    ENTRYPOINT ["/sbin/tini", "--"]
    
  • 创建docker-compose.yaml

    vim docker-compose.yaml

    version: '2'
    services:
      confluence_db:
        image: mysql:5.7
        volumes:
          - ./mysql/:/etc/mysql/conf.d/
          - ./db_data:/var/lib/mysql
        restart: always
        #ports:
        #  - "3307:3306" #host主机的3306已被使用。
        environment:
          MYSQL_ROOT_PASSWORD: root123
          MYSQL_DATABASE: confluence
          MYSQL_USER: confluence
          MYSQL_PASSWORD: confluence123
      confluence:
        links:
          - confluence_db #could access mysql via this hostname
        depends_on:
          - confluence_db #run after mysql is ready
        build: .  #build Dockerfile when docker-compose up
        ports:
          - "8090:8090"
          - "8091:8091"
    
  • 创建mysql配置文件

    mkdir mysql
    vim mysql/my.cnf

    [client]
    default-character-set = utf8
    [mysql]
    default-character-set = utf8
    [mysqld]
    character_set_server = utf8
    collation-server = utf8_bin
    transaction_isolation = READ-COMMITTED
    

    如果修改了Dockerfile需要重新构建, 使用如下命令启动:
    docker-compose up --build -d

  • 创建网络设备
    docker network create --driver bridge confluence_default --subnet 10.0.3.0/24

  • 启动服务
    docker-compose up -d

Web设置

申请试用授权码

详细请看参考链接。
这里提供一下我申请到的(经测试随意修改一个字符都不影响验证),但是这个 key 的使用期限只有 1 周:

AAABLg0ODAoPeNptkMtOwzAURPf+CktsYOEqMemDSpagSYQKaVLaABs2xrppLRK3+FGRv8dtqCiPh
SXLc+fcGZ+Va4fvXI1Diikd9wfjKMJxUmIahCOUgBFabq3cKBZvVFU7UALw+RL0DvTFyxinO147v
h9AsYbDJeEW2N5OgiEJL5E3Wi5szhtgVdu+Ve/Xq4bLuic2DRKe2vOq3AGz2kH3sLRcW9Cs4rWBI
yCdedNfwneCE0AmBSgDZbuFw964mM3SRTy9yVDdSU+gzd5DkccqC4r7ZunHVur2pMCIhBQVesWVN
N2OUjYcdf2nCZs8zx/IIJ/fkvurZEHSIJqgZZozf0gW0iAYBv0IfaXx89k0+Skd0uaueQVdVI/Gh
2IkPBr+jzN3Wqy5gd///AmiNJWUMCwCFF89M9bH7aGBlmGODBLEyu0ks0q7AhQpwOINQOrGLqq9K
RSyx/twCtz/Vw==X02f7

数据库连接配置

由于我们在docker-compose.yaml中指定了下面的配置

 links:
   - confluence_db

docker-compose会在confluence这个镜像内添加一条hosts记录, 使得我们可以使用主机名就能访问到数据库, 而不用担心数据库的IP发生变化。

这种方式的另一好处是, 我们不需要暴露mysql3306端口到host主机上,起到隔离的作用, 使得我们的数据库无法被host主机以外的其他IP访问,大大提高了安全性。

所以, 这里我们使用By connection string方式连接数据库:

  • Database URL: jdbc:mysql://confluence_db/confluence?useSSL=false
  • Username: confluence
  • Password: confluence123
    点击Test connection进行测试, 出现Success表示配置正确。
    image

配置confluence

  • Load Content
    选择Empty Site 以便后续可以设置用户:
    image

web登录

admin/[email protected]

错误记录

配置好数据库后, 跳转到web登录页面, 发现页面显示异常, 初步判断是css没有正常加载, 使用F12查看网络情况, 确实是很多css文件没有加载.
点击其中一个, 在右侧

参考

https://zhuanlan.zhihu.com/p/32120741