最近写了一个新项目,一键部署nodejs、php开发环境(docker、nodejs、php、nginx、mongo、mysql、redis)因为最近开始同时写nodejs和php项目,部署到测试、预发布、线上环境。其他同事也需要同样的环境。在不同平台下搭建一套完整的开发环境非常麻烦,于是有了这个项目。帮忙加星github地址:https://github.com/wallace530...如有任何问题或使用异常,请帮忙指出。感激的!具体如下:基于docker的nodejs和php开发环境dnmmp包括以下组合:/Redis+PHP)支持系统版本:Linux,MacOs,Windows特点1.主要面向nodejs开发者,php开发者,运维,前端2.支持多版本php、nodejs3。兼容OneinStack配置文件,配置说明完整4.支持绑定多个域名5.清除docker文件、配置文件、日志文件结构6.支持php扩展安装7.程序基于docker最新稳定版,下载来自官方仓库8.持续更新,支持交互,无人值守安装可选软件版本docker官方仓库nginx=1.17/1.16mysql=8/5.7/5.6nodejs=12/10/8php=7.4/7.3/7.2/7.1/5.6mongodb=4/3redis=5/4目录1.安装步骤2.命令行使用3.php扩展4.日志附录一:docker安装附录二:目录结构附录三:程序员常用网站收集附录四:常见问题一、安装步骤在本地安装git、docker和docker-compose(推荐最新版本:1.23)。附录一:Docker安装克隆项目:#如果你不是`root`用户,则将当前用户添加到`docker`用户组$sudogpasswd-a${USER}docker#获取项目$gitclonehttps://github.com/wallace5303/dnnmp.git构建并启动:$cddnnmp#构建并运行(建议第一次安装使用该命令,方便查看打印的log)$docker-composeup#后台运行$docker-composeup-d注意:安装SecurityGuard的Windows同学请先退出,否则在安装过程中可能会阻塞在Docker中创建账户的过程,导致文件共享失败在启动时;查看生成的镜像:$dockerimagels查看启动的容器:$dockercontainerls附录四:访问常见问题在浏览器中访问:http://local2.com/index.html,常用命令#服务列表:redis|mysql|mongodb|nginx|php#列出包含的Compose文件$docker-composeimages#创建所有服务并启动$docker-composeup$docker-composeup-d#所有后台启动#创建单个服务$docker-composeupredis$docker-composeupredis-d#后台启动#如果容器已经创建#start$docker-composestartredis#stop$docker-composestopredis#restart$docker-composerestartredis#rebuild$docker-composebuildredis#删除$docker-composermredis更多docker命令,请参见:dockerdocker-compose2。在命令行使用docker安装的程序与直接在宿主机上安装的程序不同。如果需要使用命令行,有两种方法。(1)方法一:进入docker创建的容器执行命令(2)方法二(推荐):添加bash快捷命令,如下:编辑~/.bashrc(或~/.zshrc),并在行末添加#如果电脑上已经安装了软件,请替换函数名node(){tty=tty-s&&tty=--ttydockerrun\$tty\--interactive\--rm\--volume$PWD:/var/www/html:rw\--workdir/var/www/html\dnnmp_nodenode"$@"}npm(){tty=tty-s&&tty=--ttydockerrun\$tty\--interactive\--rm\--volume$PWD:/var/www/html:rw\--workdir/var/www/html\dnnmp_nodenpm"$@"}php(){tty=tty-s&&tty=--ttydockerrun\$tty\--interactive\--rm\--volume$PWD:/var/www/html:rw\--workdir/var/www/html\dnnmp_php72php"$@"}composer(){tty=tty-s&&tty=--ttydockerrun\$tty\--interactive\--rm\--user$(id-u):$(id-g)\--volume~/dnnmp/composer:/tmp\--volume/etc/passwd:/etc/passwd:ro\--volume/etc/group:/etc/group:ro\--volume$(pwd):/app\composer"$@"}(3)让修改的内容生效$source~/.bashrc(or~/.zshrc)注意:如果提示命令没有不存在,请重新打开终端窗口(因为旧终端不会重新加载文件)(4)查看版本信息$node-vv10.16.0$npm-v6.9.0$php-vPHP7.2.19(cli)(built:Jun28201903:58:08)(NTS)版权所有(c)1997-2018ThePHPGroupZendEnginev3.2.0,版权所有(c)1998-2018ZendTechnologieswithZendOPcachev7.2.19,版权所有(c)1999-2018,byZendTechnologies$composer-vComposerversion1.8.62019-06-1115:03:05快速进入容器了解docker的同学都知道经常需要进入容器查看内容配置命令进入容器。编辑~/.bashrc(或~/.zshrc),添加:aliasdmysql='dockerexec-itdnnmp_mysql_1/bin/bash'aliasdredis='dockerexec-itdnnmp_redis_1/bin/sh'aliasdnginx='dockerexec-它dnnmp_nginx_1/bin/sh'aliasdmongodb='dockerexec-itdnnmp_mongodb_1/bin/sh'aliasdphp72='dockerexec-itdnnmp_php72_1/bin/bash'生效:$source~/.bashrc(or~/.zshrc)3.phpextensionAddextension:Edit.envfile#从扩展列表中选择相应的扩展添加到这一行,用英文逗号分隔PHP72_EXTENSIONS=curl,opcache,redis重建PHP镜像:docker-composebuildphp72docker-composeup-d4.logphp日志目录:./log/php/nginx日志目录:./log/nginx/mysql数据和日志目录:./mysql/mongo数据和日志目录:./mongo/附录一:docker安装docker安装docker-compose安装附录二:目录结构/├──composerComposer配置及缓存├──config配置文件│├──mongodbmongodb│├──DockerfileDockerfile│├──mysqlmysql│├──Dockerfile│├──mysql.cnfmysql配置文件│├──nginxnginx│├──conf.d│├──certs密钥│├──localhost_https.confhttps虚拟主机│├──localhost.conf虚拟主机│├──Dockerfile├──nginx.confnginx配置│├──nodenode│├──Dockerfile│├──phpphp│├──扩展和脚本│├──install.sh基本安装脚本│├──php56.shphp5.6扩展安装脚本│├──php72.shphp7.2扩展安装脚本│├──Dockerfile│├──php-fpm.confphp-fpm配置文件│├──php.iniphp.ini配置文件│├──redisredis│├──Dockerfile│├──redis.confredis配置文件├──mongomongodb数据目录├──log日志目录├──mysqlMySQL数据目录├──docker-compose.ymlDocker服务配置├──.env环境配置└──www代码目录
