Docker迁移JIRA

场景描述

​ 之前在本地服务器上用Docker部署了JIRA以及Confluence,现在需要将服务转移到另外一台服务器上,目前另外一台服务器是干净的什么都没有。下文中A代表原来有服务的本地服务器;B代表新的服务器。

A服务器操作

登录JIRA点击右上角设置–系统–备份系统,输入备份文件名称之后点击备份,之后会在页面中的目录内生成备份文件名.zip压缩文件,这里我输入的是jira.bak
在这里插入图片描述
在这里插入图片描述

mkdir /home/bak_jira/
cd /home/bak_jira/
# 将备份文件拷贝到宿主机内,这里的路径仅供参考,实际路径请拷贝自己页面中的备份文件输出路径
# 拷贝命令 docker cp <容器名>:<文件完整路径> <宿主机路径>
docker cp jira:/var/atlassian/jira/export/jira.bak.zip /home/bak_jira

# 将头像喝附件也拷贝出来,备份文件是不含附件和用户头像的,需要单独拷贝
# attachments是附件文件夹,avatars是用户头像文件夹
docker cp jira:/var/atlassian/jira/data/ /home/bak_jira
# 拷贝出来之后对其进行打包
cd /home/bak_jira/
tar -zcvf attachments.tar.gz attachments/
tar -zcvf avatars.tar.gz avatars/

# 打包命令 docker commit <容器名> <新镜像名>
docker commit jira bak_jira

# 查看新的镜像是否创建成功
docker images

# 将新的镜像打包成tar压缩包
# 压缩命令 docker save -o <压缩包名称> <镜像名称>
docker save -o bak_jira.tar bak_jira

#将所有的压缩包传到B服务器,这里的方法比较多,可以使用sz命令或scp命令
scp /home/bak_jira/bak_jira.tar root@192.168.1.3:/home/
scp /home/bak_jira/jira.bak.zip root@192.168.1.3:/home/
scp /home/bak_jira/attachments.tar.gz root@192.168.1.3:/home
scp /home/bak_jira/avatars.tar.gz root@192.168.1.3:/home

B服务器操作

这里默认B已经安装了Docker,安装步骤可以参考这里

# cd到压缩文件目录,我这里是/home
cd /home

# 加载镜像命令 docker load -i <压缩包名称>
docker load -i bak_jira.tar

# 查看镜像是否加载成功
docker images

# 此时镜像已经拉进来了,但是启动还需要数据库,这里要尽量保持与原数据库一致,比如jira连接的用户如果是非root用户的话需要在新的数据库中也创建一样的数据库用户并赋予权限。这里请参考上面的链接里面有详细安装步骤

# 接下来启动镜像
docker run -d --name jira  --restart always -p 18009:8080   -e TZ="Asia/Shanghai"   -m 4096M   -v /home/data/jira:/var/atlassian/jira bak_jira
# 参数接释:
# -d 后台运行
# --name 容器名称
# --restart 自启动
# -p 宿主机映射容器内端口,18009是宿主机端口,8080是容器内的服务端口
# -e 时区
# -m 给JIRA分配的最大内存,根据自己的机器配置来,一般2G就够
# -v 将容器内的/var/atlassian/jira文件夹挂载到宿主机的/home/data/jira 方便修改配置文件以及查看日志

# 由于我这里挂载了文件夹,所以直接把压缩包mv到宿主机的/home/data/jira/import即可
mv jira.bak.zip /home/data/jira/import
# 没有挂载也可以使用拷贝命令将备份文件打到容器内的import文件夹,这里的import文件夹路径仅供参考
docker cp jira.bak.zip jira:/var/atlassian/jira/import

# 不知道import文件夹的位置可以使用下面的方法,进入容器内部找
docker exec -it jira bash

镜像启动之后访问服务我这里是http://localhost:18009按照流程进行设置
在这里插入图片描述

在这里插入图片描述
这里选择导入
在这里插入图片描述
输入备份文件全称之后点击导入,等待导入完成
在这里插入图片描述
导入完成之后再次访问http://localhost:18009
在这里插入图片描述
如果这里不能登录报错了是因为server.xml配置错误,没有报错请跳过这一节
在这里插入图片描述

# 进入到jira容器中查看server.xml
docker exec -it jira bash
cd /opt/atlassian/jira/conf/
cat server.xml
# 复制打印的内容,exit到宿主机中使用vim命令创建server.xml文件并粘贴刚刚复制的内容,进行修改

这里的设置还是服务器A的,由于域名和ip都变了,需要修改成新的,这里先使用默认的http配置,后面根据需要再改

<Server port="8005" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

    <Service name="Catalina">
        <!--
         ==============================================================================================================
         DEFAULT - Direct connector with no proxy for unproxied access to Jira.

         If using a http/https proxy, comment out this connector.
         ==============================================================================================================
        -->

        <!-- Relaxing chars because of JRASERVER-67974 -->
        <Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
                   maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false"
                   maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443"
                   acceptCount="100" disableUploadTimeout="true" bindOnInit="false"/>
	
        <!--
         ==============================================================================================================
         HTTP - Proxying Jira via Apache or Nginx over HTTP

         If you're proxying traffic to Jira over HTTP, uncomment the below connector and comment out the others.
         Ensure the proxyName and proxyPort are updated with the appropriate information if necessary as per the docs.

         See the following for more information:

            Apache - https://confluence.atlassian.com/x/4xQLM
            nginx  - https://confluence.atlassian.com/x/DAFmGQ
         ==============================================================================================================
        -->

       
       <!-- <Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
                   maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false"
                   maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443"
                   acceptCount="100" disableUploadTimeout="true" bindOnInit="false" scheme="http"
                   proxyName="jira.mrbun.cn" proxyPort="80"/>
	-->
        
        <!--
         ==============================================================================================================
         HTTPS - Proxying Jira via Apache or Nginx over HTTPS

         If you're proxying traffic to Jira over HTTPS, uncomment the below connector and comment out the others.
         Ensure the proxyName and proxyPort are updated with the appropriate information if necessary as per the docs.

         See the following for more information:

            Apache - https://confluence.atlassian.com/x/PTT3MQ
            nginx  - https://confluence.atlassian.com/x/DAFmGQ
         ==============================================================================================================
        -->

        
	<!-- <Connector port="8080"
	           relaxedPathChars="[]|"
		   relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
		   maxThreads="150"
		   minSpareThreads="25"
		   connectionTimeout="20000"
		   enableLookups="false"
		   maxHttpHeaderSize="8192"
		   protocol="HTTP/1.1"
		   useBodyEncodingForURI="true"
		   redirectPort="8443"
		   acceptCount="100"
		   disableUploadTimeout="true"
		   bindOnInit="false"
		   secure="true"
		   scheme="https"
		   proxyName="xxx.domain.com"
		   proxyPort="443"/>
	    -->

        <!--
         ==============================================================================================================
         AJP - Proxying Jira via Apache over HTTP or HTTPS

         If you're proxying traffic to Jira using the AJP protocol, uncomment the following connector line
         See the following for more information:

            Apache - https://confluence.atlassian.com/x/QiJ9MQ
         ==============================================================================================================
        -->

        <!--
        <Connector port="8009" URIEncoding="UTF-8" enableLookups="false" protocol="AJP/1.3"/>
        -->

        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

                <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
                    <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
                              factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
                    <Manager pathname=""/>
                    <JarScanner scanManifest="false"/>
                    <Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="120" />
                </Context>

            </Host>
            <Valve className="org.apache.catalina.valves.AccessLogValve"
                   pattern="%a %{jira.request.id}r %{jira.request.username}r %t &quot;%m %U%q %H&quot; %s %b %D &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; &quot;%{jira.request.assession.id}r&quot;"/>
        </Engine>
    </Service>
</Server>
# 将server.xml文件拷贝到容器内
docker cp server.xml jira:/opt/atlassian/jira/conf/
# 重启JIRA
docker restart jira

再次访问JIRA即可登录
在这里插入图片描述
恢复附件以及用户头像

cd /home
tar -zxvf attachments.tar.gz
tar -zxvf avatars.tar.gz
docker cp attachments jira:/var/atlassian/jira/data
docker cp avatars jira:/var/atlassian/jira/data
docker restart jira

至此整个JIRA迁移工作完成,迁移后原来的应用可能会丢失,需要重新安装,记得记录下原来服务中的应用,无需重新购买可以直接安装。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值