使用Docker部署禅道

3,286 阅读2分钟

起因

公司禅道系统最开始由研发同学部署在测试用Windows Server上,后面由于公司内部优化准备全部内部使用系统由运维组接手维护后决定统一管理迁移至Linux平台下。
同时考虑到部署与维护方便决定使用Docker形式部署禅道并迁移数据。

Docker安装

安装Docker我们使用阿里镜像仓库进行安装,具体安装方式参考云栖社区Docker安装文档
安装完成后我们需要再次修改docker的源为国内的镜像站DaoCloud然后启动docker并设置开机自启

# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
# systemctl start docker
# systemctl enable docker

Docker-Compose安装

docker-compose是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。这里我们使用compose来部署容器。

  • 下载docker-compose
# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod 0700 /usr/local/bin/docker-compose
  • 测试docker-compose可用
# docker-compose -v
docker-compose version 1.24.1, build 4667896b

禅道Docker部署

禅道官方其实提供了Docker版本禅道的使用说明,不过需要自己去构建镜像,我个人比较推荐直接去DockerHub上下载禅道镜像使用。

部署禅道docker-compose.yml内容如下:

version: "3.3"

services:
  zentao:
    image: idoop/zentao:11.5.1
    container_name: zentao-server
    restart: always
    environment:
      ADMINER_USER: "root"
      ADMINER_PASSWD: "password"
      BIND_ADDRESS: "false"
    ports:
      - 10000:80
      # - 10001:3306
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - $PWD/data/zbox/:/opt/zbox/

编写并保存后启动容器,然后就可以使用IP:Port的方式通过浏览器来访问了。

# docker-compose up -d

迁移数据

由于平台不同,迁移时我使用的方法是通过禅道自身的数据备份与恢复来实现的,新老版本需要使用同一版本迁移,迁移后可以更换Docker中镜像为新版本然后选择升级使用。
在Windows版本中备份数据后根据备份的文件路径找到文件后上传到Linux中容器映射出来的文件夹中指定路径下,例如我上面映射出来的文件路径是./data/zbox那么上传的待恢复文件路径就是./data/zbox/app/zentao/tmp/backup下。上传后刷新页面然后选择对应的备份文件点击还原待还原成功后退出重新登录系统就可以看到以前的所有数据了。