尝试使用 centos,ubuntu 等 系统镜像,安装 event 成功,但在优化 linux 内核时失败
(1)其中该配置会提示找不到:netdev_max_backlog: No such file or directory,国内国外搜索了一番,未找到解决方法,以下仅供参考: https://github.com/moby/moby/issues/30778
(2)没有文件:/etc/sysctl.conf,该文件可以自己创建
(3)启动时使用 --privileged,使其具备最高权限,可以在容器内使用 sysctl,否则会出现 Read-only file system
在 docker 中尝试了一下午,结果已失败告终。
(1)其中该配置会提示找不到:netdev_max_backlog: No such file or directory,国内国外搜索了一番,未找到解决方法,以下仅供参考:
https://github.com/moby/moby/issues/30778
(2)没有文件:/etc/sysctl.conf,该文件可以自己创建
(3)启动时使用 --privileged,使其具备最高权限,可以在容器内使用 sysctl,否则会出现 Read-only file system
FROM centos:7
RUN yum -y install epel-release
RUN yum -y install https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
RUN yum -y install yum-utils
RUN yum-config-manager --enable remi-php73
RUN yum -y install php-cli php-posix php-event php-zip php-openssl php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-mysqlnd php-redis --skip-broken
RUN mkdir /app
COPY ./ /app
WORKDIR /app
RUN chmod -R 777 runtime
CMD ["php", "/app/start.php", "start"]
接下来准备使用阿里云的系统完成优化后,然后打包制作镜像。但也在犹豫这么做的意义,因为物理机是同样需要优化的。
使用Alpine linux + docker,非常方便安装event拓展
apk search event
apk add php7-event
apk add libevent
首先,感谢上面两位大佬对于安装event的提出的方案。
关于内核优化的第2点问题,目前为止已经有了些头绪。
按照文档说明,系统以 net.* 的会被支持,但实际测试 net.core.netdev_max_backlog 仍然不行。
对于最高评论的方案做过测试,方案二是失败的。即使添加了 --privileged,也没有权限写入文件。并且也不建议这么做。
目前看来,通过将容器的网络模式设置为 --net host 是一个可行的方案。因为 webman 的服务,一般是独立的并且可以由开发者自定义端口,和 nginx 或 mysql 等服务有所不同。