Docker安装禅道(一)

1. 拉取PHP镜像

1
docker pull php:7.2-apache

2. 下载禅道源代码

这里以11.2版本为例:

1
wget http://dl.cnezsoft.com/zentao/11.2/ZenTaoPMS.11.2.stable.zip

3. 解压源代码

1
unzip ZenTaoPMS.11.2.stable.zip

4. 移动源代码码到指定目录

1
mv zentaopms/ /usr/local/zentaopms/

5. 启动镜像

1
docker run -d -p 8080:80 --name zentaopms -v /usr/local/zentaopms/:/zentaopms php:7.2-apache

6. 安装mysql模块

1
2
3
docker exec -it zentaopms /bin/sh
docker-php-ext-install pdo_mysql
exit

7. 修改容器内配置文件

因为镜像中没有编辑器,所以将配置文件复制到宿主机,修改完成后再移动回去

1
2
3
4
5
6
7
8
9
10
11
12
docker cp zentaopms:/usr/local/etc/php/php.ini-production ./php.ini
docker cp zentaopms:/etc/apache2/conf-enabled/docker-php.conf ./docker-php.conf
docker cp zentaopms:/etc/apache2/apache2.conf ./apache2.conf

# php.ini文件修改:
# 修改时区
date.timezone = Asia/Shanghai
# 修改Session目录
session.save_path = "/tmp"

# docker-php.conf 文件中的:<Directory /var/www/> 修改为:<Directory /zentaopms/www/>
# apache2.conf 文件中的:<Directory /var/www/> 修改为:<Directory /zentaopms/www/>

修改完成将文件复制到容器内:

1
2
3
docker cp ./php.ini zentaopms:/usr/local/etc/php/php.ini
docker cp ./apache2.conf zentaopms:/etc/apache2/apache2.conf
docker cp ./docker-php.conf zentaopms:/etc/apache2/conf-enabled/docker-php.conf

8. 重启镜像

1
docker restart zentaopms

此种方式因为修改了容器内容,启动新的镜像时需要重新配置,不够优雅,比较优雅的方式是直接基于php:7.2-apache构建新的镜像,即在Dockerfile里修改相关内容,此方法后面介绍。