在Docker中部署Confluence和jira-software的方法步骤

version:

 centos==7.2
 jdk==1.8
 confluence==6.15.4
 jira-software==8.2.1
 docker==18.09

安装前提示:

1. 需要准备2个数据库,因为confluence和jira-software的mysql配置要求不一样
    2. confluence需要配置jdk,jira-software自带jdk

选择使用docker部署的原因:

1. confluence和jira-software环境需求不同,需要分开配置.
    2. 如果直接使用物理机,需要占用多台.
    3. 不使用虚拟机是因为docker更轻量,而且更容易迁移.
    4. confluence和jira-software只是作为公司内部员工使用,不需要太高的配置和复杂的环境

此次部署流程:

1. 配置jira-software需要的数据库
    2. 配置jira-software
    3. 配置confluence需要的数据库
    4. 配置confluence

容器名称和IP分布:

因为wiki的账号可以由jira控制,所以我们首先安装jira-software

宿主机IP:10.0.0.25

1. jira-software
        jira-mysql          192.168.0.10
        confluence-jira     192.168.0.100

2. confluence
        wiki-mysql          192.168.0.20
        confluence-wiki     192.168.0.200

一、docker-ce环境配置

1. 安装docker

  $ sudo yum remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine

  $ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

  $ sudo yum-config-manager \
   --add-repo \
   https://download.docker.com/linux/centos/docker-ce.repo

  $ sudo yum install docker-ce docker-ce-cli containerd.io

  $ sudo systemctl enable docker

  $ sudo systemctl start docker

2. 配置添加自定义网桥,用于指定docker容器IP

  $ docker network create \
  --driver=bridge \
  --subnet=192.168.0.0/24 \
  --ip-range=192.168.0.0/24 \
  --gateway=192.168.0.254 \
  br-custom

3. 下载由官方提供的容器基础镜像

docker pull centos:7.5.1511
docker pull mysql:5.7.26

4. 迁移docker容器默认存放目录

systemctl stop docker
mv /var/lib/docker /data/docker
ln -s /data/docker /var/lib/docker
systemctl start docker

二、jira-software部署

创建目录:

mkdir -p /docker-storage/confluence/jira/{etc,data,mysql}

释:

/docker-storage/confluence/jira/mysql   :   MySQL容器的数据目录
/docker-storage/confluence/jira/etc     :   jira-software容器的安装目录
/docker-storage/confluence/jira/data    :   jira-software容器的数据目录

1. 部署并且配置jira需要的MySQL

  # 启动容器
   docker run --name jira-mysql --network br-custom --ip 192.168.0.10 \
   -v /docker-storage/confluence/jira/mysql:/var/lib/mysql \
   -e MYSQL_ROOT_PASSWORD='123456Qr!' \
   -d mysql:5.7.26

  # 进入容器修改MySQL配置,并且创建jira-software需要的数据库
   docker exec -it jira-mysql "/bin/bash"

   apt update
   apt-get install vim

   vim /etc/mysql/mysql.conf.d/mysqld.cnf
    [mysqld]
    default-storage-engine=INNODB
    character_set_server=utf8mb4
    innodb_default_row_format=DYNAMIC
    innodb_large_prefix=ON
    innodb_file_format=Barracuda
    innodb_log_file_size=2G
    sql_mode = NO_AUTO_VALUE_ON_ZERO

   mysql -uroot -p123456Qr!
    CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on jiradb.* TO 'confluence-jira'@'192.168.0.%' IDENTIFIED BY '123456Qr!';
    flush privileges;

  # 重启容器使MySQL配置生效
   docker restart jira-mysql

2. 部署jira-software

  # 安装jira-software的四个重要选项
   安装类型 - 选择选项2(自定义)以获得最多控制权.
   目标目录 - 这是安装Jira的地方.
   主目录  - 这是存储日志,搜索索引和文件等Jira数据的地方.
   TCP端口  - 这些是HTTP连接器端口和Jira将运行的控制端口.除非您在同一端口上运行其他应用程序,否则请使用默认值.
   安装为服务 - 使用"/etc/init.d/jira [stop | start]"命令来控制jira服务.

  # 部署容器并且安装jira-software
   docker run -dit --name confluence-jira --network br-custom --ip 192.168.0.100 -p 10.0.0.25:10010:8080 \
   -v /docker-storage/confluence/jira/:/usr/local/confluence/ \
   -v /docker-storage/confluence/jira/etc/:/usr/local/confluence/etc/ \
   -v /docker-storage/confluence/jira/data/:/usr/local/confluence/data/ \
   centos:7.2.1511 "/bin/bash"

   docker exec -it confluence-jira "/bin/bash"

   yum -y install epel-release
   yum -y install libffi-devel gcc gcc-c++ make automake zlib zlib-devel openssl-devel wget gcc gcc-c++ make automake zlib zlib-devel openssl-devel dejavu-sans-fonts vim lrzsz

   wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-8.2.1-x64.bin

   chmod a+x atlassian-jira-software-8.2.1-x64.bin

   ./atlassian-jira-software-8.2.1-x64.bin
    > 交互式安装过程:
     Unpacking JRE ...
     Starting Installer ...

     > 这会在你的计算机中安装jira software,回车即可
     This will install JIRA Software 8.2.1 on your computer.
     OK [o, Enter], Cancel [c]

     Click Next to continue, or Cancel to exit Setup.

     > 这里输入1是默认安装,2是自定义安装,3是更新,选择2
     Choose the appropriate installation or upgrade option.
     Please choose one of the following:
     Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
     2

     > 选择你的jira安装目录
     Select the folder where you would like JIRA Software to be installed.
     Where should JIRA Software be installed?
     [/opt/atlassian/jira]
     /usr/local/confluence/etc

     > 选择你的jira数据目录
     Default location for JIRA Software data
     [/var/atlassian/application-data/jira]
     /usr/local/confluence/data

     > 可以指定服务端口,这里是默认
     Configure which ports JIRA Software will use.
     JIRA requires two TCP ports that are not being used by any other
     applications on this machine. The HTTP port is where you will access JIRA
     through your browser. The Control port is used to startup and shutdown JIRA.
     Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]

     > 是否将jira安装为服务,安装为服务后使用"/etc/init.d/jira [stop | start]"来控制jira的停止和启动.
     JIRA can be run in the background.
     You may choose to run JIRA as a service, which means it will start
     automatically whenever the computer restarts.
     Install JIRA as Service?
     Yes [y, Enter], No [n]
     y

     > 这里列出了你之前输入的配置信息,询问你否安装,回车即可
     Details on where JIRA Software will be installed and the settings that will be used.
     Installation Directory: /usr/local/confluence/etc
     Home Directory: /usr/local/confluence/data
     HTTP Port: 8080
     RMI Port: 8005
     Install as service: Yes
     Install [i, Enter], Exit [e]

     Extracting files ...

     Please wait a few moments while JIRA Software is configured.

     > jira software已经安装成功,是否现在启动
     Installation of JIRA Software 8.2.1 is complete
     Start JIRA Software 8.2.1 now?
     Yes [y, Enter], No [n]
     y

     Please wait a few moments while JIRA Software starts up.
     Launching JIRA Software ...

     Installation of JIRA Software 8.2.1 is complete
     Your installation of JIRA Software 8.2.1 is now ready and can be accessed
     via your browser.
     JIRA Software 8.2.1 can be accessed at http://localhost:8080
     Finishing installation ...

  # 因为jira并没有自带java连接mysql的驱动器,所以这里需要自己下载,并且放入对应目录.
    wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
    tar zxf mysql-connector-java-5.1.47.tar.gz
    cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/local/confluence/etc/lib/
    /etc/init.d/jira stop
    /etc/init.d/jira start

  # 到此就可以访问"http://10.0.0.25:10010"初始化你的jira-software配置,暂时先使用jira的试用授权许可(普通版)

  # 破解jira-software
   > 备份原文件
    mv /usr/local/confluence/etc/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar /root/

   > 将破解文件移动到源位置
    cp atlassian-extras-3.2.jar /usr/local/confluence/etc/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar

   > 重启服务
    /etc/init.d/jira stop
    /etc/init.d/jira start

   > 查看许可证过期时间
    许可证状态查看http://10.0.0.25:10010/plugins/servlet/applications/versions-licenses

三、jira-software启动后问题处理.

处理/usr/local/confluence/etc/logs/catalina.out警告:

Fri May 31 12:05:49 UTC 2019 WARN: Establishing SSL connection without server's identity verification is
        not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be
        established by default if explicit option isn't set. For compliance with existing applications not using
        SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by
        setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

问题

 vim /usr/local/confluence/data/dbconfig.xml
  <url>jdbc:mysql://address=(protocol=tcp)(host=192.168.0.10)(port=3306)/jiradb?sessionVariables=default_storage_engine=InnoDB</url>

改为

  <url>jdbc:mysql://address=(protocol=tcp)(host=192.168.0.10)(port=3306)/jiradb?useSSL=false&sessionVariables=default_storage_engine=InnoDB</url>

重启jira

 /etc/init.d/jira stop
 /etc/init.d/jira start

四、confluence部署

创建目录:

mkdir -p /docker-storage/confluence/wiki/{etc,data,mysql}

释:
/docker-storage/confluence/wiki/mysql   :   MySQL容器的数据目录
/docker-storage/confluence/wiki/etc     :   wiki容器的安装目录
/docker-storage/confluence/wiki/data    :   wiki容器的数据目录

1. 部署并且配置wiki需要的MySQL

# 启动容器
   docker run --name wiki-mysql --network br-custom --ip 192.168.0.20 \
   -v /docker-storage/confluence/wiki/mysql:/var/lib/mysql \
   -e MYSQL_ROOT_PASSWORD='123456Qr!' \
   -d mysql:5.7.26

  # 进入容器修改MySQL配置,并且创建jira-software需要的数据库
   docker exec -it wiki-mysql "/bin/bash"

   apt update
   apt-get install vim

   vim /etc/mysql/mysql.conf.d/mysqld.cnf
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_bin
    default-storage-engine=INNODB
    max_allowed_packet=256M
    innodb_log_file_size=2GB
    sql_mode = NO_AUTO_VALUE_ON_ZERO
    transaction-isolation=READ-COMMITTED
    binlog_format=row

   mysql -uroot -p123456Qr!
    CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
    GRANT ALL PRIVILEGES ON confluence.* TO 'confluence_user'@'192.168.0.%' IDENTIFIED BY '123456Qr!';
    flush privileges;

  # 重启容器使MySQL配置生效
   docker restart wiki-mysql

2. 部署wiki

 # 安装wiki的选项和jira几乎相同

  # 部署容器并且安装wiki
   docker run -dit --name confluence-wiki --network br-custom --ip 192.168.0.200 -p 10.0.0.25:10020:8090 \
   -v /docker-storage/confluence/wiki/:/usr/local/confluence/ \
   -v /docker-storage/confluence/wiki/etc/:/usr/local/confluence/etc/ \
   -v /docker-storage/confluence/wiki/data/:/usr/local/confluence/data/ \
   centos:7.2.1511 "/bin/bash"

   docker exec -it confluence-wiki "/bin/bash"

   yum -y install epel-release
   yum -y install libffi-devel gcc gcc-c++ make automake zlib zlib-devel openssl-devel wget gcc gcc-c++ make automake zlib zlib-devel openssl-devel dejavu-sans-fonts vim lrzsz

  # wiki需要手动配置jdk
   wget https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz
   tar zxf jdk-8u202-linux-x64.tar.gz
   mv jdk1.8.0_202 /usr/local/jdk1.8

   vim /etc/profile
    export JAVA_HOME=/usr/local/jdk1.8
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

   source /etc/profile

  # 安装wiki
   wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.15.4-x64.bin

   chmod a+x atlassian-confluence-6.15.4-x64.bin

   ./atlassian-confluence-6.15.4-x64.bin
    > 交互式安装过程:
     This will install Confluence 6.15.4 on your computer.
     OK [o, Enter], Cancel [c]         

     Click Next to continue, or Cancel to exit Setup.

     Choose the appropriate installation or upgrade option.
     Please choose one of the following:
     Express Install (uses default settings) [1],     快速安装
     Custom Install (recommended for advanced users) [2, Enter], 自定义安装 -
     Upgrade an existing Confluence installation [3]    升级
     2

     Select the folder where you would like Confluence 6.15.4 to be installed, 选择要安装Confluence 6.15.4的文件夹,
     then click Next.               然后单击Next。
     Where should Confluence 6.15.4 be installed?        6.15.4应安装在何处?
     [/opt/atlassian/confluence]
     /usr/local/confluence/etc

     Default location for Confluence data          confluence数据的默认位置
     [/var/atlassian/application-data/confluence]
     /usr/local/confluence/data

     Configure which ports Confluence will use.
     Confluence requires two TCP ports that are not being used by any other
     applications on this machine. The HTTP port is where you will access
     Confluence through your browser. The Control port is used to Startup and
     Shutdown Confluence.
     Use default ports (HTTP: 8090, Control: 8000) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2] 1=默认,2=自定义
     1

     Confluence can be run in the background.          可以在后台运行Confluence。
     You may choose to run Confluence as a service, which means it will start  您可以选择将Confluence作为服务运行,这意味着它将启动
     automatically whenever the computer restarts.         自动每当计算机重新启动。
     Install Confluence as Service?            安装Confluence作为服务?
     Yes [y, Enter], No [n]              Yes [y, Enter], No [n]
     y

     Extracting files ...

     Please wait a few moments while we configure Confluence.

     Installation of Confluence 6.15.4 is complete        Confluence 6.15.4安装完成
     Start Confluence now?              现在启动Confluence吗?
     Yes [y, Enter], No [n]
     y

     Please wait a few moments while Confluence starts up.
     Launching Confluence ...

     Installation of Confluence 6.15.4 is complete
     Your installation of Confluence 6.15.4 is now ready and can be accessed via
     your browser.
     Confluence 6.15.4 can be accessed at http://localhost:8090
     Finishing installation ...

  # wiki和jira一样并没有自带java连接mysql的驱动器,所以这里需要自己下载,并且放入对应目录.
   wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
   tar zxf mysql-connector-java-5.1.47.tar.gz
   cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/local/confluence/etc/confluence/WEB-INF/lib/
   /etc/init.d/confluence restart

  # 到此就可以访问"http://10.0.0.25:10020"初始化你的wiki配置,暂时不要选择组件,直接配置到有server ID的那一页

  # 破解wiki和jira完全不同,需要两步,一是破解文件,二是获取授权码
   > 将wiki的/usr/local/confluence/etc/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar文件下载到本地重命名为atlassian-extras-2.4.jar
   > 找到破解软件,右击confluence_keygen.jar使用java运行(需要在windows上安装好java)
   > 选择".patch"找到刚才从wiki上下载下来并且重命名的文件打开
   > 注意破解程序暂时别关闭
   > 然后打开你下载的破解包的文件目录,可以看到atlassian-extras-2.4.jar和atlassian-extras-2.4.bak两个文件,这里atlassian-extras-2.4.jar已经是破解好的
   > 将atlassian-extras-2.4.jar名字改回为atlassian-extras-decoder-v2-3.4.1.jar然后传到wiki的/usr/local/confluence/etc/confluence/WEB-INF/lib/下

   /etc/init.d/confluence restart

   > 复制网页中的server ID,然后返回你的破解程序,将server ID填入到破解程序,并且填入其他信息(随意填,邮箱格式要正确)
   > 点击破解程序".gen!"按钮,然后将生成的key填入web中即可

五、confluence问题处理

对于console报错500,atlassian的社区帮助这样回复

1. confluence配置完成后发现css样式不显示,并且console报错500

atlassian的社区帮助这样提示:

confluence帐户必对目录 <confluence_home>和<confluence_install> 拥有读/写/执行权限

解决办法(不要加-R):

chmod 755 /usr/local/confluence/data

2. wiki登录后提示:在您系统中的服务器 SQL 模式健康检查失败了.

进入wiki-mysql容器注释如下行

 vim /etc/mysql/mysql.conf.d/mysqld.cnf
   # sql_mode = NO_AUTO_VALUE_ON_ZERO

  docker restart wiki-mysql

3. 处理catalina.out警告:

处理/usr/local/confluence/etc/logs/catalina.out警告:

Fri May 31 12:16:44 UTC 2019 WARN: Establishing SSL connection without server's identity verification is not recommended.
            According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit
            option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'.
            You need either to explicitly disable SSL by setting useSSL=false,
            or set useSSL=true and provide truststore for server certificate verification

问题

vim /usr/local/confluence/data/confluence.cfg.xml
   <property name="hibernate.connection.url">jdbc:mysql://192.168.0.20:3306/confluence</property>

改为

<property name="hibernate.connection.url">jdbc:mysql://192.168.0.20:3306/confluence?useSSL=false</property>

  /etc/init.d/confluence restart

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解如何使用Docker部署一个web项目并打包成镜像文件

    docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建的,顶层仓库由docker内部的人来管理的.仓库里存放的是镜像文件,那么问题来了 ,怎么去创建镜像呢? how to create image 构建docker镜像的有2种方法: 1.使用docker commit命令. 2.使用docker build 命令和Dockerfile文件.在这里并不推荐使用docke

  • docker kubernetes dashboard安装部署详细介绍

    docker之kubernetes dashboard部署 1. 环境说明: 1). 架构: 注: 本次实验服务器环境均采用centos 7. 服务安装均采用yum install. 192.168.3.7 master 192.168.3.16 node 2).使用的软件包: master: docker kubernetes-master etcd flannel nodes: docker kubernetes-node flannel 3). 软件版本: docker: 1.10.3 k

  • Docker新手实践及部署NGINX的步骤详解

    docker是什么 官方文档入口 在知乎上看到关于docker的思想讲的挺好的:如何通俗解释Docker是什么?.这里直接引用了. Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响.那么我就不需要专门运送水果的船和专门运送化学品的船了.只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走. docker就是类似的理念.现在都流行云计算了,云计算就好比大货轮.docker

  • 在docker中部署tomcat并且部署java应用程序的步骤详解

    先给大家简单说下Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创建Dockerfile,命令如:touch Docker

  • Docker学习笔记之k8s部署方法

    本文记录了如何在ubuntu 14.04裸机上部署k8s集群,参考自官方文档. 拓扑结构 1master + 2minion k8s-master 192.168.0.201 master k8s-node1 192.168.0.202 minion k8s-node2 192.168.0.203 minion 准备工作系统 安装Ubuntu 14.04 LTS 64bit server版本系统,配置好hostname和ip. 在更新国内的软件源的时候,由于GFW的原因,经常会出现md5校验错误

  • 详解Windows下运用Docker部署Node.js开发环境

    开始 在windows下部署nodejs开发环境着实遍地坑,每遇到一个问题都要去google原因再试图解决.而且如果你想把你写好的应用交给别人跑跑看,他可能同样需要折腾很久才能真正在他的环境下运行起来.被坑了好些时日最终还是放弃,转战Docker. 文章开头先明确一下我们希望实现的效果: 1.依然在Windows下编辑源代码,在Docker容器中运行代码,最后在Windows的浏览器中看到运行结果,方便后续debug. 2.可以将我开发完成的程序和运行环境一起打包制作成Docker的image,

  • Ubuntu Docker 的安装部署及简单应用

    Docker直译为码头工人.当它成为一种技术时,做的也是码头工人的事.官网是这样描述它的:"Docker是一个开发的平台,用来为开发者和系统管理员构建.发布和运行分布式应用."也就是说,如果把你的应用比喻为货物,那么码头工人(Docker)就会迅速的用集装箱将它们装上船.快速.简单而有效率. 它是用Go语言写的,是程序运行的"容器"(Linux containers),实现了应用级别的隔离(沙箱).多个容器运行时互补影响,安全而稳定. 我喜欢它的原因就是快速部署,安

  • Docker 自动部署tomcat详解

    Docker 自动部署tomcat 1. 下载镜像 # Docker pull centos:latest  #获取最新的centos镜像 2. 启动容器 #docker run -i -t -v /home/user/software/:/home/software/ imageId /bin/bash 其实包含以下三个部分: docker run <相关参数> <镜像ID> <初始命令> 其中,相关参数包括: -i:表示以"交互模式"运行容器 -

  • 在Docker快速部署Node.js应用的详细步骤

    一.前言 可能还有一些同学不了解docker这个项目,docker是由go语言编写的,一个快速部署的轻量级虚拟技术项目,他允许开发人员将自己的程序和运行环境一起打包,制作成一个docker的image(镜像),这样部署到服务器上,也只需要下载这个image就可以将程序跑起来,免去每次都安装各种依赖和环境的麻烦,还能够做到应用程序之间的隔离 二.实现准备 我会先创建一个简单的Node.js web app,来构建一个镜像.然后基于这个Image运行一个container.从而实现快速部署. 由于网

  • Dockerfile 部署java web的环境详解

    Dockerfile 构建java web 环境 Dockfile 介绍: Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Doc

随机推荐