1 Introduction
1.1  About ZenTao
1.2  Introduction PDF
1.3  Technical Support
1.4  Follow Us
2 Installation
2.1  Choose the Right Installation
2.2  ZenTao Cloud
2.3  One-click Installation for Windows
2.4  One-click Installation for Linux
2.5  Lampp Installation in Linux
2.6  Source Code Installation (for all systems)
2.7  Source Code Installation for macOS
2.8  XAMPP-VM Installation for macOS
2.9  XAMPP Installation for macOS
2.10  Install ZenTao in Docker
2.11  Install httpd, Mariadb, PHP 7.2 in Cent OS 8
2.12  Softaculous Service
2.13  Integrate Zdoo
2.14  Install Ioncube
3 Update
3.1  Update ZenTao
3.2  Update by Source Code (for all systems)
3.3  Update for One-Click Installation for Windows (xampp)
3.4  Update for One-Click Installation for Linux
4 Users and Groups
4.1  Company Structure
4.2  Add a User
4.3  Batch Manage Users
4.4  Groups and Privileges
5 Quick Start
5.1  Project and Task Management
5.2  Bug Tracking
5.3  Product Management
5.4  Todo Management
6 Basic Application
6.1  Basic Workflow
6.2  Agile and Scrum
6.3  ZenTao and Scrum
6.4  ZenTao Tutorial for Rookies
6.5  Create a Product
6.6  Create a Story
6.7  Create a Project
6.8  Confirm a Story
6.9  Decompose Stories into Tasks
6.10  Report a Bug
6.11  Manage Contacts
6.12  Customization
6.13  Import Excel, CSV Files
6.14  Document Management
6.15  Work Mode
6.16  Points
6.17  Required Field
6.18  Privileges
6.19  Annual Work Summary
7 Advanced Application
7.1 Workflow
7.1.1  ZenTao Workflow
7.2 Individual management
7.2.1  My Todo
7.2.2  My Task, Story and Bug
7.2.3  My Profile
7.3 Product Owner
7.3.1  Manage a Product
7.3.2  Manage a Product Line
7.3.3  Create and Review a Story
7.3.4  Change and Review a Story
7.3.5  Status and Phase
7.3.6  Story Writing
7.3.7  Product Module
7.3.8  Release Plan
7.3.9  Create a Release
7.3.10  Roadmap
7.3.11  Documents
7.3.12  Planning Meetings
7.3.13  Daily Scrum, Review and Retrospective Meetings
7.3.14  Story Reports
7.4 Scrum Master
7.4.1  Create a Sprint
7.4.2  Set a Team
7.4.3  Confirm a Story
7.4.4  Task Breakdown
7.4.5  Daily Standup Meetings
7.4.6  Check Project Progress via Burndown Chart
7.4.7  Check Project Progress via Lists
7.4.8  Review and Retrospective Meetings
7.4.9  Basic reports on tasks
7.5 Development Team
7.5.1  Project planning meeting and task breakdown
7.5.2  Claim tasks and update efforts
7.5.3  Kanban and Tree Diagram
7.5.4  Build
7.5.5  Test Request
7.5.6  Resolve a Bug
7.5.7  Documents
7.5.8  Confirm Bugs
7.6 Test Team
7.6.1  Bug Tracking
7.6.2  Report a Bug
7.6.3  Verify and Close a Bug
7.6.4  Activate a Bug
7.6.5  Find a Bug
7.6.6  Test Case
7.6.7  Create and Review Test Cases
7.6.8  Test Suites, Public Case Libs and Reports
7.6.9  Manage Test Requests
7.6.10  Run Cases and Report Bugs
7.6.11  Reports
8 Configuration
8.1 Maintain ZenTao
8.1.1  Initialize scripts
8.1.2  Data Backup
8.1.3  Recover the Deleted
8.1.4  Update Burndown Charts
8.1.5  ZenTao Remote Host
8.2 Deploy ZenTao
8.2.1  Guest Login
8.2.2  Email Notification
8.2.3  Set Super Admin
8.2.4  Static Access
8.2.5  Remove "zentao" from URL
8.2.6  Integrate SVN
8.2.7  Integrate Git
8.2.8  Integrate Webhook
8.2.9  Integrate Xuan.im
8.2.10  Integrate Zdoo
8.2.11  Integrate Third-Party Apps
8.2.12  Password-Free Login
8.2.13  Translation Add-on
8.2.14  Integrate Jenkins
8.2.15  Extension
8.2.16  Fix Weak Password
9 Customization
9.1  Introduction
9.2  Directory
9.3  Find Codes
9.4  Database Structure
9.5  Common Modules
9.6  Add Features to Menu
9.7  Set Privileges to Modules
9.8  Examples: modify language prompt
9.9  Examples: set priority when creating bugs
9.10  Extension Editor
9.11  Feature Limitation
9.12  ZenTao Packaging Standards 1.1
10 Misc
10.1  About Third-Party Code
10.2  Support ZenTao
10.3  ZenTao Service
10.4  Acknowledgement

Install ZenTao in Docker

2020-06-23 18:49:41
John Ten
Last edited by Taotao on 2021-05-17 10:40:35
Summary : This is an instruction to install ZenTao, a Scrum tool, in a docker.

1. Get Docker ready

Strongly recommend Docker 18 or higher. No specific requirement for host environment.

Check your docker version.

docker -v

2. Download ZenTao image

Online download and offline import are both available to deploy ZenTao image. Choose one according to your environment.

2.1 Download

ZenTao image is uploaded to dockerhub, and you could find it here,  https://hub.docker.com/r/easysoft/zentao/tags

sudo docker pull [Image name]:[Image tag]

Pull an image, e.g. zentao:12.2.stable

sudo docker pull easysoft/zentao:12.2.stable

ZenTao version and Image tag:

ZenTao Version Tag
Open source

Start with number, like 12.2.stable

Professional Start with pro, like pro8.8
Enterprise Strat with biz, like biz3.7

2.2. Import

ZenTao versions, image names and image links:

ZenTao Version Image name Image link ( Archive fiel directory )
Open source 12.3.1 easysoft/zentao:12.3.1
Open source12.2.stable easysoft/zentao:12.2.stable
Professional 8.8 easysoft/zentao:pro8.8
Enterprise 3.7 easysoft/zentao:biz3.7
As you can see above, image link names are combined of zentao_version number.tar

So how to import images?

  1. Choose the right image link for you and import it into your host.
  2. Go to archive file directory and run docker load

sudo docker load -i [Archive file directory]

Load an image, e.g. zentao_12.3.1.tar

sudo docker load -i zentao_12.3.1.tar

3. Docker start

3.1. Create a docker network

sudo docker network create --subnet=[ip range] [network driver name]
  • IP range: ranges from to
  • Network driver name: a name for network driver, name as you wish.

sudo docker network create --subnet= zentaonet

3.2. Docker container start

sudo docker run --name [container name] -p [host port]:80 --network=[driver name] --ip [container IP] --mac-address [mac address] -v [host zentao root]:/www/zentaopms -v [host mysql root]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[database password] -d easysoft/zentao:[image tag]
  • container name: name a container you want to start as you wish.
  • host port: your web host port
  • driver name: the network driver
  • container IP: pick a static ip for your container
  • MAC address: pick a static MAC address for your container, ranges from 02:42:ac:11:00:00 to 02:42:ac:11:ff:ff
  • host ZenTao root: required, for ZenTao files and attachments storage. Leave it blank if you are not upgrading your ZenTao.
  • host MySQL root: required, for ZenTao data storage. Leave it blank if you are not upgrading your ZenTao.
  • database password: default account in container is root, 123456, do not mention it if you don't need to change anything, but you can use MYSQL_ROOT_PASSWORD to modify the password as well.
  • image tag: the version of ZenTao.

Create blank roots in host for /www/zentaopms and /www/mysqldata

sudo docker run --name zentao -p 80:80 --network=zentaonet --ip --mac-address 02:42:ac:11:00:00 -v /www/zentaopms:/www/zentaopms -v /www/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.2.stable

If you want to run multiple ZenTao on a single host at the same time, you just need to configure with different [contaniner name], [host port], [container IP], [mac address], [host zentao root], [host mysql root]

sudo docker run --name zentao2 -p 8080:80 --network=zentaonet --ip --mac-address 02:42:ac:11:00:01 -v /www/zentaopms2:/www/zentaopms -v /www/mysqldata2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.2.stable

3.3. Check if the container is running 

docker ps

If not running, run without -d and debug your container, feel free to contact our technical support by troy@easycorp.ltd.

4. Install ZenTao

Visit  http://container ip:host mapped port

5. Upgrade ZenTao

5.1. Stop the container

docker stop zentao

5.2. Back up ZenTao

For data security, backup [host zentao root] and [host mysql root], like copy/www/zentaopms and /www/mysql data to other root in host.

5.3. Get the newest source code package from https://www.zentao.pm/download.html.

5.4. Unzip it and overwrite to [host zentao root], like overwrite to /app/zentaopms

5.5. Start zentao container

docker start zentao

5.6. Visit upgrade.php, and choose the right current version and upgrade it.

Please refer to the manual here,  https://www.zentao.pm/book/zentaomanual/free-open-source-project-management-software-upgradezentao-18.html

6. FAQ

How to configure MySQL in a container?

Execute container first

docker exec -it [container name] /bin/bash
For example, execute zentao container, edit my.cnf, save it and restart mysql
docker exec -it zentao /bin/bash
vi /etc/mysql/my.cnf

It's the same to configure Apache and PHP, related roots in the container as shown below,

  • Apache: /etc/apache2/
  • ZenTao: /app/zentaopms
  • MySQL: /etc/mysql/
  • PHP: /etc/php/7.0/apache2

Feel free to contact our technical support at troy@easycorp.ltd if any questions.

Write a Comment
Comment will be posted after it is reviewed.