# 一、说明

应用镜像基于 Debian 11 系统制作而成，运行环境包含 Apache 2.4.53 + PHP 7.4.28



# 二、环境详情


## 2.1 Apache

| **类型**       | **说明**                                                     |
| -------------- | ------------------------------------------------------------ |
| **版本**       | 2.4.53                                                       |
| **启用的模块** | core_module<br/> so_module<br/> http_module<br/> log_config_module<br/> logio_module<br/> version_module<br/> unixd_module<br/> dav_module<br/> access_compat_module<br/> alias_module<br/> auth_basic_module<br/> authn_core_module<br/> authn_file_module<br/> autoindex_module<br/> cgi_module<br/> deflate_module<br/> dir_module<br/> env_module<br/> filter_module<br/> mime_module<br/> mpm_prefork_module<br/> negotiation_module<br/> php7_module<br/> reqtimeout_module<br/> setenvif_module |



## 2.2 PHP

| **类型**       | **内容**                                                     |
| -------------- | ------------------------------------------------------------ |
| **版本**       | 7.4.28                                                       |
| **加载的扩展** | json<br/>ldap<br/>libxml<br/>mbstring<br/>mcrypt<br/>mysqli<br/>mysqlnd<br/>openssl<br/>pcntl<br/>pcre<br/>PDO<br/>pdo_mysql<br/>Phar<br/>posix<br/>readline<br/>Reflection<br/>session<br/>shmop<br/>SimpleXML<br/>sockets<br/>sodium<br/>SPL<br/>standard<br/>sysvmsg<br/>sysvsem<br/>sysvshm<br/>tokenizer<br/>wddx<br/>xml<br/>xmlreader<br/>xmlwriter<br/>xsl<br/>Zend OPcache<br/>zip<br/>zlib |

# 三、环境变量



镜像运行时，可以指定环境变量，启动脚本会根据环境变量来设置应用的配置文件。以下列出了支持的环境变量名及作用描述：

| **变量名**       | **默认值**       | **说明**                                        |
| ---------------- | ---------------- | ----------------------------------------------- |
| DEBUG            | 无               | 设置是否开启debug模式，作用于启动脚本 |
| MAXWAIT | 30 | 应用启动时等待mysql服务的时间，超时后退出 |
| ENABLE_CRON | true | 默认启动cron计划任务 |
| MYSQL_HOST       | 无               | * 必选项，MySQL 主机地址                          |
| MYSQL_PORT       | 无            | * 必选项，MySQL 主机端口                            |
| MYSQL_DB         | 无          | * 必选项，禅道数据库名称                            |
| MYSQL_USER       | 无            | * 必选项，MySQL用户名                               |
| MYSQL_PASSWORD   | 无     | * 必选项，MySQL密码                                 |
| SAAS_DOMAIN | demo.chandao.net | 应用域名                                |
| SAAS_VERSION | biz \| max | 应用功能：企业版还是旗舰版 |
| SAAS_LIMIT_USER | 5 | 用户数 |
| SAAS_LIMIT_SPACE | 200 | 空间配额，单位M |




# 四、持久化目录

## 4.1 禅道应用的持久化目录

| 持久化目录名称                | 说明                 |
| ----------------------------- | -------------------- |
| /data/php  | php日志         |
| /data/zendas  | zendas数据         |

禅道的附件和代码目录，临时测试可以不用挂载，生产环境运行，需要将外部存储挂载到该目录，命令如下：

```bash
docker run -d -v $PWD/data:/data \
              -e DEBUG=true \
              zendas:test
```

通过docker-compose的方式运行容器，配置中已经做好了持久化存储的挂载，不需要特殊处理，如下：

```yml
# zentao service
  zentao:
    build: .
    image: zendas:test
    container_name: zendas
    ports:
      - '80:80'
    volumes:
      - 'zendas_data:/data'
...

# persistence for mysql and zentao
volumes:
  db:
    driver: local
  zendas_data:
    driver: local
```

通过docker-compose的方式运行，参考下文的 [本地测试](#五、本地测试)


# 五、本地测试


代码中包含了Makefile文件，可以通过如下命令执行各类操作：

| **命令**     | **实际执行命令**                                             | **备注**         |
| ------------ | ------------------------------------------------------------ | ---------------- |
| make help    |                                                              | 查看Makefile帮助 |
| make build   | docker compose -f docker-compose.yml build                   | 构建禅道镜像     |
| make run     | docker compose -f docker-compose.yml up -d                   | 启动服务         |
| make ps      | make run docker compose -f docker-compose.yml ps             | 查看服务状态     |
| make stop    | docker compose -f docker-compose.yml stop                    | 关闭服务         |
| make restart | make build make clean make ps                                | 重构             |
| make clean   | make stop docker compose -f docker-compose.yml down docker volume prune -f | 清理数据         |
| make logs    | docker compose -f docker-compose.yml logs                    | 查看日志         |



## 5.1 构建镜像

```bash
make build
```
## 5.2 启动服务并查看状态

```bash
make run
make ps

# 查看日志
make logs
```
## 5.3 关闭服务

```bash
make stop
```

## 5.4 清理服务和数据

```bash
make clean
```