win7下docker环境搭建nginx+php-fpm+easyswoole开发环境
基础的环境已在文章nginx、php-fpm、swoole HTTP/TCP压测对比中搭建了,现在是在这个基础上在搭建easyswoole开发环境
主要要修改的地方是dnmp包里面的docker-compose.yml修改:
version: '3' networks:
# frontend:
# driver: ${NETWORKS_DRIVER}
backend:
driver: ${NETWORKS_DRIVER} #volumes:
# mysql:
# driver: ${VOLUMES_DRIVER}
# memcached:
# driver: ${VOLUMES_DRIVER}
# redis:
# driver: ${VOLUMES_DRIVER}
# mongo:
# driver: ${VOLUMES_DRIVER} services:
# php-client注释掉
# php-client:
# image: "swoole:4.1.2"
# build:
# context: ./php
# ports:
# - "9502:9502"
# networks:
# - backend
# volumes:
# - ${APP_CODE_PATH_HOST}:/app:rw
# command: php /app/swoole/examples/http/server.php start php:
image: "swoole:4.1.2"
build:
context: ./php
ports:
- "9501:9501"
networks:
- backend
volumes:
- ${APP_CODE_PATH_HOST}:/app:rw
command: /app/easyswoole/vendor/bin/easyswoole start ### PHP-FPM ##############################################
php-fpm:
build:
context: ./php-fpm
args:
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
- INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2}
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
- INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
- INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
- INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
- INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
- INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
- SWOOLE_VERSION=${PHP_SWOOLE_VERSION}
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
- INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR}
- INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME}
- INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE}
volumes:
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
expose:
- "9000"
depends_on:
- php
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
- FAKETIME=${PHP_FPM_FAKETIME}
networks:
- backend ## NGINX Server #########################################
nginx:
build:
context: ./nginx
args:
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available:rw
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443"
depends_on:
- php
- php-fpm
networks:
# - frontend
- backend ### MySQL ################################################
# mysql:
# build:
# context: ./mysql
# args:
# - MYSQL_VERSION=${MYSQL_VERSION}
# environment:
# - MYSQL_DATABASE=${MYSQL_DATABASE}
# - MYSQL_USER=${MYSQL_USER}
# - MYSQL_PASSWORD=${MYSQL_PASSWORD}
# - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
# - TZ=${WORKSPACE_TIMEZONE}
# volumes:
## - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
# - mysql:/var/lib/mysql
# - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
# ports:
# - "${MYSQL_PORT}:3306"
# networks:
# - backend ### MongoDB ##############################################
# mongo:
# build: ./mongo
# ports:
# - "${MONGODB_PORT}:27017"
# volumes:
## - ${DATA_PATH_HOST}/mongo:/data/db
# - mongo:/data/db
# networks:
# - backend ### Redis ################################################
# redis:
# build: ./redis
# volumes:
# - ${DATA_PATH_HOST}/redis:/data
# ports:
# - "${REDIS_PORT}:6379"
# networks:
# - backend ### Memcached ############################################
# memcached:
# build: ./memcached
# volumes:
# - ${DATA_PATH_HOST}/memcached:/var/lib/memcached
# ports:
# - "${MEMCACHED_HOST_PORT}:11211"
# depends_on:
# - php
# networks:
# - backend
宿主机本机目录上新建一个sh脚本文件,用于运行安装easyswoole,并命名为easyswoole_install.sh详细代码如下
#!/bin/sh # swoole image must contain php composer
swoole_img="swoole:4.1.2"
container_code_path="/app"
work_dir="/www"
docker_compose_file_path="/www/dnmp" cur_dir=$(pwd) if [ -d ${work_dir}/easyswoole ]; then
sudo rm -rf ${work_dir}/easyswoole
fi Init_Easyswoole()
{
docker run --rm --net=host -v ${work_dir}:${container_code_path}:rw composer sh -c "composer config -g repo.packagist composer https://packagist.laravel-china.org && cd ${container_code_path} && composer create-project easyswoole/app easyswoole"
} Install_Easyswoole()
{
docker run --rm --net=host -v ${work_dir}:${container_code_path}:rw ${swoole_img} sh -c "${container_code_path}/easyswoole/vendor/bin/easyswoole install"
} Init_Easyswoole
Install_Easyswoole
cd ${docker_compose_file_path}
docker-compose up -d
docker-compose ps
以上的word_dir为宿主机的工作目录,/www/dnmp为dnmp环境中的docker-compose.yml目录;
使用xshell进行连接docker虚拟机,进入到easyswoole_install.sh所在目录,运行:
./easyswoole_install.sh

easyswoole安装成功后,打开Docker Quickstart Terminal.exe
进入到dnmp目录,运行
docker-compose down

再运行
docker-compose up -d

然后查看容器是否全部启动
docker-compse ps

发现已经全部启动,在win7宿主机进行访问http://localhost:9501/,已经可以正常使用了

接下来就可以开始使用easyswoole
PS:若是修改easyswoole宿主机代码,要生效的话,需要在docker虚拟机上reload才能生效
docker-compose exec php easyswoole/vendor/bin/easyswoole reload
win7下docker环境搭建nginx+php-fpm+easyswoole开发环境的更多相关文章
- android开发环境搭建日记和嵌入式Android开发环境初探
非常感谢博客园的各位,按照你们的博文,还有利用百度和谷歌逐渐建立了android的开发环境,只是给自己备份参考查看,看过的人可以忽略这篇文章. 本文章大部分参考了:http://www.cnblogs ...
- Golang环境搭建,Notepad++配置Golang开发环境,Golang发送邮件
http://blog.csdn.net/u011012932/article/details/53102264 http://blog.csdn.net/u011012932/article/det ...
- win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...
- Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)
一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端, ...
- linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区
linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区 http://blog.csdn.net/orzor ...
- 利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境
前后端分离这个词一点都不新鲜,完全的前后端分离在岗位协作方面,前端不写任何后台,后台不写任何页面,双方通过接口传递数据完成软件的各个功能实现.此种情况下,前后端的项目都独立开发和独立部署,在开发期间有 ...
- 搭建Eclipse、Resin Web开发环境
搭建Eclipse.Resin Web开发环境 一.当然是安装java开发环境 参看: Java环境的搭建 http://www.cnblogs.com/ghj1976/archive/2010/04 ...
- CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇
CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...
- 一.1搭建跨平台的统一python开发环境
搭建跨平台的统一python开发环境: 使用开发环境的好处: 可不用在服务器上直接修改源代码---写的代码首先得入版本库(放git或giitlab中),在本地写代码提交到git中.然后在服务器上git ...
随机推荐
- echarts地图扩展___自定义的svg图
echarts的自定义地图 标签引入js文件 <script type="text/javascript" src="echarts/require.js" ...
- 51nod 1181 质数中的质数
1181 质数中的质数(质数筛法) 题目来源: Sgu 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 如果一个质数,在质数列表中的编号也是质数,那么就称 ...
- Linux6.x修改出eth0网卡的解决方法
1. 编辑70-persistent-net配置文件: # -persistent-net.rules 如果没有就新建一个,添加如下内容: # PCI device 0x14e4:0x165f (tg ...
- Matlab debug
输入彩色,imwrite保存黑白图片,imwrite的维度错误. 程序如下,正常图像,少了一个维度imwrite,把图片展开,是一个二维的灰色图像(R=G=B),.如果限定了第二维,也是一个灰色图像. ...
- Java并发编程原理与实战四十四:final域的内存语义
一.final域的重排序规则 对于final域,编译器和处理器要遵循两个重拍序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序 ...
- onchange/onpropertychange/oninput
onpropertychange事件,顾名思义,就是property(属性)change(改变)的时候,触发事件.这是IE专有的!如果想兼容其它浏览器,有个类似的事件,oninput! 可能大家会想到 ...
- 奇葩字符 "a๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎" 的简单分析
这个其实之前火过一阵子,当时也没怎么注意,今天看到空间里又有人在刷这个字符了,所以决定分析下他是什么东西.复制这个字符在控制台查看 "a๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎".l ...
- 关于JavaScript代码的执行效率总结
Javascript是一门非常灵活的语言,我们可以随心所欲的书写各种风格的代码,不同风格的代码也必然也会导致执行效率的差异,开发过程中零零散散地接触到许多提高代码性能的方法,整理一下平时比较常见并且容 ...
- Linux学习-1进程
在Linux中,在一个程序的内部启动另外一个程序,从而创建一个新进程. 1.这个工作可以通过库函数system来完成. #include<stdlib.h> int system (con ...
- 20155325 2016-2017-2 《Java程序设计》第7周学习总结
教材学习内容总结 名称 作用 Calendar 设定时间日期等字段 add() 改变Calendar的时间 roll() 针对日期中某个字段加减 getDefault() 取得默认时区信息 教材学习中 ...