Win10下Docker开发easyswoole
- 众所周知swoole不能在win环境下开发,所以会阻挡一部分用户使用swoole,但也不是不能在win下开发,无非是需要借助工具开发而已(虚拟机、docker、以及win10子系统)
Docker是什么?
- Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
Win10下的坑
- 最大的坑是需要win10企业版、教育版或专业版才可以才可以开启hyper-v虚拟化技术(自行百度开启)
easyswoole安装(前提示已安装好docker)
- easyswoole官网有两种安装方式,一种是docker镜像拉取(php7.1.30 swoole4.4.12 easyswoole3.x-dev),另一种是dockerFile,可以自定义版本需求(本次使用方式)
- 构建DockerFile(swoole最新稳定版本 easyswoole3.x测试版,不建议开发使用测试版)
FROM centos:7
#version defined
ENV SWOOLE_VERSION 4.4.17
ENV EASYSWOOLE_VERSION 3.3.4
#install libs
RUN yum install -y curl zip unzip wget openssl-devel gcc-c make autoconf
#install php
RUN yum install -y epel-release
RUN rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
RUN yum clean all
RUN yum update -y
RUN yum install -y php71w-devel php71w-openssl php71w-mbstring
# composer
RUN curl -sS https://getcomposer.org/installer | php
&& mv composer.phar /usr/bin/composer
# use aliyun composer
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# swoole ext
RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz
&& mkdir -p swoole
&& tar -xf swoole.tar.gz -C swoole --strip-components=1
&& rm swoole.tar.gz
&& (
cd swoole
&& phpize
&& ./configure --enable-openssl
&& make
&& make install
)
&& sed -i "2i extension=swoole.so" /etc/php.ini
&& rm -r swoole
# Dir
WORKDIR /easyswoole
# install easyswoole
RUN cd /easyswoole
&& composer require easyswoole/easyswoole=${EASYSWOOLE_VERSION}
&& php vendor/bin/easyswoole install
EXPOSE 9501
- 找到DockerFile的所在目录,执行
docker build -t easyswoole .
- 等待构建dockerFile完成
- 查看镜像
docker images
- 运行镜像并映射端口
docker run -ti -p 9501:9501
- 并执行
php easyswoole start
启动easyswoole框架
- 然后在宿主机访问
127.0.0.1:9501
即可看到easyswoole运行成功
平常容器关闭后,如何启动easyswoole容器
- 执行命令
docker ps -a
查看所有容器 - 执行命令
docker rename suspicious_jang easyswoole
重命名容器名称(方便自己维护) - 再次执行命令
docker ps -a
查看所有容器,发现容器名称已经变更
- 然后使用命令来管理容器
docker start/stop/restart easyswoole
- 进入容器
docker exec -ti easyswoole /bin/bash
然后执行即可看到效果
docker容器目录挂载本地
- 执行命令
docker run -v D:/www/test:/easyswoole -ti -p 9501:9501 easyswoole
挂载成功并进入目录
- 然后在容器内删除或者宿主机内删除目录里面的文件,会发现同步删除,此时目录共享完毕,即可在Windows下开发EasySwoole了