1. 创建目录
1 2 3 4 5
| mkdir -pv /data/zentao
mkdir -pv /data/docker-compose/zentao
|
2. 创建变量文件.env
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| cat > /data/docker-compose/zentao/.env << 'EOF'
Version=18.10 TZ=Asia/Shanghai
COMPOSE_PROJECT_NAME=zentao COMPOSE_HTTP_TIMEOUT=3600 DOCKER_CLIENT_TIMEOUT=3600 DOCKER_SUBNET=172.16.240.0/24
VOLUME_DIR=/data/zentao
DB_HOST=zentao_db DB_PORT=3306 DB_ROOT_PASSWORD=Aa123456! DB_USER=zentao DB_PASSWORD=zentao DB_NAME=zentao_config
REDIS_HOST=zentao_redis REDIS_PORT=6379
UI_PORT=8080 MAX_EXECUTION_TIME=300 POST_MAX_SIZE=512M UPLOAD_MAX_FILESIZE=512M EOF
|
3. 编辑docker-compose.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| cat > /data/docker-compose/zentao/docker-compose.yml << 'EOF' version: '3' services: zentao_db: container_name: zentao_db image: mysql:8.0 restart: always 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 --loglevel warning --maxmemory-policy allkeys-lru environment: REDIS_PORT: $REDIS_PORT volumes: - $VOLUME_DIR/redis:/data healthcheck: 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: - $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页面安装
1 2 3 4 5 6 7 8 9 10 11 12
| docker-compose up -d
http://IP:8080 - 按提示下一步 - 连接数据库时填入预置信息(版本自己填写, 新版本会自动导入),如下 数据库服务器: zentao_db 服务器端口: 3306 数据库用户名: zentao 数据库密码: zentao PMS使用的库: zentao_config - 继续按提示完成安装即可
|
5. 关于迁移 && 升级
Docker部署禅道, 迁移并升级(跨多个版本, 数据库结构有变化)思路:
1 2 3 4 5 6 7 8 9 10
| 以12.5.3迁移并升级18.10为例: 1. 禅道同版本迁移: - 先部署同版本禅道到新节点, 并进行数据迁移 - 旧节点: 后台->系统设置->备份->拷贝备份文件至新节点backup目录 - 新节点: 后台->系统设置->备份->找到备份文件进行恢复 2. 禅道升级: - 修改docker-compose配置 - 1. 版本修改, 将老版本号修改为新版本号 - 2. 持久化目录修改, 将/www/zentaopms修改为/data/zentao - 3. 重建容器并登录后台, 禅道会自动检测版本信息, 并提示升级相关选项, 更具引导进行升级即可
|