首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

docker-compose:部署蝉道

ZenTaoPMS的发布并不难,利用Docker进行部署也很容易,但是利用Docker-Compose一键编排的资料却很少,这篇文章分享的内容,是利用docker-compose实现一键部署蝉道9.8.3开源版本。

前言

按照惯例,先上项目源代码:liumapp/zentao-in-docker

环境部署

蝉道9.8.3的环境配置无非经典的LNMP或者LAMP,这里我们选用LNMP(CentOS7+Nginx+Mysql+PHP5.6)。

那么,直接上docker-compose.yml的文件内容:

version: "2"

services:mysql:containername: mysqlimage: mysql:5.5.60restart: alwaysvolumes:- ./mysql/data:/var/lib/mysql- ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnfports:- 3306:3306environment:- MYSQLROOT_PASSWORD=adminadminnetworks:- zentao-server

mysql的环境配置,需要注意的地方除去端口、密码及volumes之外,便是一个networks了,在docker-compose完成up的瞬间,一个新的networks会用来连接这些services,networks内部的的service可以直接通过service的name进行通讯,比如,我们可以让运行在php5这个service下的蝉道应用通过hostname:mysql来与mysql service建立数据库的连接,而不是用localhost或者127.0.0.1(事实上用localhost或者127.0.0.1也无法建立于mysql的连接,如果它们部署在同一台宿主机上的话)。

nginx:container_name: nginxrestart: alwaysimage: nginx:1.13ports:- 80:80- 8080:8080- 443:443- 5050:5050- 5553:5553volumes:- ./conf/vhosts:/etc/nginx/conf.d- ./logs:/var/log/nginx- ./www/:/var/www/networks:- zentao-server

Nginx的环境配置。

php5:containername: php5restart: alwaysimage: php:5.6-fpmvolumes:- ./www/:/var/www/- ./conf/php/:/usr/local/etc/php/conf.d/expose: - 9000networks:- zentao-servercommand: - /bin/bash- -c- |docker-php-ext-install pdomysql mysqliphp-fpm

PHP的环境配置,事实上,唯一的难点就在这里。因为PHP并不是说拉来image,运行成功就完事了,我们还需要让蝉道的代码copy到容器里去,同时配置蝉道所需要的php扩展,最重要的一个便是pdo_mysql(相信很多小伙伴们,对于PHP扩展的安装深感头疼)。但是不要怕,利用docker-compose的命令便可以解决。

command:

/bin/bash

-c

| docker-php-ext-install pdo_mysql mysqli php-fpm

这几句命令的格式可能各位会以为是语法有问题,然而事实却是docker-compose下多行命令的写法。

当然,这几个命令的意思是:让php自己去安装pdo_mysql和mysqli的扩展(其实就是phpize、./configure、make、make install、再配置php.ini那一套,只不过这几个命令把它简化了),最后再启动php-fpm去监听9000端口,至于php的配置文件,大家可以参考项目里面的/conf/php下的文件。

networks:zentao-server:driver: bridge

最后便是给我们的networks起一个名字,方便管理下面的services。

结尾

简单运行一下

docker-compose up -d

然后在浏览器里面输入http://testc.com:8080/www便可以进入蝉道的安装界面。

当然,您需要稍微修改一下hosts文件,或者不这么做也可以,直接修改/conf/vhosts/zentaopms.conf文件下的server_name及listen端口号也行。

(完)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180609G1H6BR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券