Docker部署禅道

1. 创建目录

# 创建持久化目录
mkdir -pv /data/zentao

# 创建docker-compose目录
mkdir -pv /data/docker-compose/zentao

2. 创建变量文件.env

cat > /data/docker-compose/zentao/.env << 'EOF'
# 版本号可以自己根据项目的版本修改
#Version=12.5.3
Version=18.10
TZ=Asia/Shanghai

# Compose
COMPOSE_PROJECT_NAME=zentao
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=172.16.240.0/24

# 持久化存储
VOLUME_DIR=/data/zentao

# MySQL: 填写你的 Mysql 服务器信息
DB_HOST=zentao_db
DB_PORT=3306
DB_ROOT_PASSWORD=Aa123456!
DB_USER=zentao
DB_PASSWORD=zentao
DB_NAME=zentao_config

# Redis: 填写你的 Redis 服务器信息(docker版本目前好像不支持redis设置密码)
REDIS_HOST=zentao_redis
REDIS_PORT=6379
#REDIS_PASSWORD=8URXPL2x3HZMi7xoGTdk3Upj

# Zentao
UI_PORT=8080
MAX_EXECUTION_TIME=300
POST_MAX_SIZE=512M
UPLOAD_MAX_FILESIZE=512M
EOF

3. 编辑docker-compose.yml文件

cat > /data/docker-compose/zentao/docker-compose.yml << 'EOF'
version: '3'
services:
  zentao_db:
    container_name: zentao_db
    image: mysql:8.0
    restart: always
    # docker安全验证
    security_opt:
      - seccomp:unconfined
    volumes:
      - /etc/localtime:/etc/localtime
      - $VOLUME_DIR/mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_DATABASE: ${DB_NAME}
    command: --character-set-server=utf8 --collation-server=utf8_general_ci --default-authentication-plugin=mysql_native_password --skip-name-resolve
    deploy:
      resources:
        limits:
           memory: 4G
    networks:
      - zentao
      
  zentao_redis:
    container_name: zentao_redis
    image: redis:6.2.1
    restart: always
    #command: redis-server --requirepass $REDIS_PASSWORD --loglevel warning --maxmemory-policy allkeys-lru
    command: redis-server --loglevel warning --maxmemory-policy allkeys-lru
    environment:
      REDIS_PORT: $REDIS_PORT
      #REDIS_PASSWORD: $REDIS_PASSWORD
    volumes:
      - $VOLUME_DIR/redis:/data
    healthcheck:
      #test: "redis-cli -h 127.0.0.1 -p $$REDIS_PORT -a $$REDIS_PASSWORD info Replication"
      test: "redis-cli -h 127.0.0.1 -p $$REDIS_PORT info Replication"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 10s
    deploy:
      resources:
        limits:
           memory: 1G
    networks:
      - zentao

  zentao:
    container_name: zentao
    depends_on:
      - zentao_db
      - zentao_redis
    image: easysoft/zentao:${Version}
    restart: always
    ports:
      - ${UI_PORT}:80
    volumes:
      # For version 12
      #- $VOLUME_DIR/wwwroot:/www/zentaopms
      # For version 18
      - $VOLUME_DIR/wwwroot:/data/zentao
    environment:
      MYSQL_INTERNAL: false
      ZT_MYSQL_HOST: ${DB_HOST}
      ZT_MYSQL_PORT: ${DB_PORT}
      ZT_MYSQL_USER: ${DB_USER}
      ZT_MYSQL_PASSWORD: ${DB_PASSWORD}
      ZT_MYSQL_DB: ${DB_NAME}

      PHP_SESSION_TYPE: redis
      PHP_SESSION_PATH: tcp://zentao_redis:6379

      PHP_MAX_EXECUTION_TIME: ${MAX_EXECUTION_TIME}
      PHP_POST_MAX_SIZE: ${POST_MAX_SIZE}
      PHP_UPLOAD_MAX_FILESIZE: ${UPLOAD_MAX_FILESIZE}

    healthcheck:
      test: "curl -fsL http://localhost/ > /dev/null"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 10s
    deploy:
      resources:
        limits:
           memory: 4G
    networks:
      - zentao

networks:
  zentao:
    driver: bridge
EOF

4. 启动&&安装

web页面安装

# 启动
docker-compose up -d
# 浏览器访问并安装
http://IP:8080
 - 按提示下一步
 - 连接数据库时填入预置信息(版本自己填写, 新版本会自动导入),如下
   数据库服务器: zentao_db
   服务器端口: 3306
   数据库用户名: zentao
   数据库密码: zentao
   PMS使用的库: zentao_config
 - 继续按提示完成安装即可

5. 关于迁移 && 升级

Docker部署禅道, 迁移并升级(跨多个版本, 数据库结构有变化)思路:

以12.5.3迁移并升级18.10为例:
1. 禅道同版本迁移:
  - 先部署同版本禅道到新节点, 并进行数据迁移
    - 旧节点: 后台->系统设置->备份->拷贝备份文件至新节点backup目录
    - 新节点: 后台->系统设置->备份->找到备份文件进行恢复
2. 禅道升级:
  - 修改docker-compose配置
    - 1. 版本修改, 将老版本号修改为新版本号
    - 2. 持久化目录修改, 将/www/zentaopms修改为/data/zentao
    - 3. 重建容器并登录后台, 禅道会自动检测版本信息, 并提示升级相关选项, 更具引导进行升级即可
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值