title: Easyswoole docker镜像 meta:

  • name: description content: EasySwoole的docker镜像构建
  • name: keywords content: swoole|swoole 拓展|swoole 框架|easyswoole|swoole docker镜像|swoole dockerfile|swoole

Docker

镜像拉取

  1. docker pull easyswoole/easyswoole3

::: warning docker hub上的环境为php7.1.30 + swoole4.4.12 :::

启动

  1. docker run -ti -p 9501:9501 easyswoole/easyswoole3

默认工作目录为: /easyswoole ,以上命令启动的时候,自动进入工作目录,执行php easyswoole start ,浏览器访问 http://127.0.0.1:9501/ 即可看到easyswoole欢迎页。

Docker下开发

可以单独映射一个宿主机目录到Docker容器当中,然后根据easyswoole按照文档 http://www.easyswoole.com/Introduction/install.html 在 自定义映射的Docker容器目录中重新安装easyswoole。安装好后即可在宿主机中开发,docker中同步测试运行。

注意,在部分环境下,例如win10的docker环境中,不可把虚拟机共享目录作为EasySwoole的Temp目录,否则会因为权限不足无法创建socket,产生报错:listen xxxxxx.sock fail, 为此可以手动在dev.php配置文件里把Temp目录改为其他路径即可,如:’/Tmp’

Docker File

您也可以使用Dockerfile进行自动构建。

  1. FROM centos:7
  2. #version defined
  3. ENV SWOOLE_VERSION 4.4.12
  4. ENV EASYSWOOLE_VERSION 3.x-dev
  5. #install libs
  6. RUN yum install -y curl zip unzip wget openssl-devel gcc-c++ make autoconf
  7. #install php
  8. RUN yum install -y epel-release
  9. RUN rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  10. RUN yum clean all
  11. RUN yum update -y
  12. RUN yum install -y php71w-devel php71w-openssl php71w-mbstring
  13. # composer
  14. RUN curl -sS https://getcomposer.org/installer | php \
  15. && mv composer.phar /usr/bin/composer
  16. # use aliyun composer
  17. RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  18. # swoole ext
  19. RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \
  20. && mkdir -p swoole \
  21. && tar -xf swoole.tar.gz -C swoole --strip-components=1 \
  22. && rm swoole.tar.gz \
  23. && ( \
  24. cd swoole \
  25. && phpize \
  26. && ./configure --enable-openssl \
  27. && make \
  28. && make install \
  29. ) \
  30. && sed -i "2i extension=swoole.so" /etc/php.ini \
  31. && rm -r swoole
  32. # Dir
  33. WORKDIR /easyswoole
  34. # install easyswoole
  35. RUN cd /easyswoole \
  36. && composer require easyswoole/easyswoole=${EASYSWOOLE_VERSION} \
  37. && php vendor/bin/easyswoole install
  38. EXPOSE 9501