zoukankan      html  css  js  c++  java
  • workerman docker 运行试用

    看到别人项目使用了workerman 作为webserver ,看了下介绍发现此框架还是挺强大的,比较喜欢使用
    docker运行软件,所以基于php 7.3 的基础镜像简单使用下

    环境准备

    项目使用了composer(主要是本地) 同时配置了event 模块

    • docker-compose 文件
     
    version: "3"
    services: 
       app:
         build: ./
         image: dalongrong/workerman:3.5.22
         ports: 
         - "2345:2345"
    • dockerfile
    FROM php:7.3-cli-stretch
    COPY app /usr/src/myapp
    WORKDIR /usr/src/myapp
    COPY entrypoint.sh /
    RUN chmod +x /entrypoint.sh
    RUN uname -a && apt update
    RUN docker-php-ext-install sockets pcntl
    RUN apt-get install libevent-dev libssl-dev -y && pecl install event
    RUN echo extension=event.so > /usr/local/etc/php/conf.d/30-event.ini
    EXPOSE 2345
    ENTRYPOINT [ "/entrypoint.sh" ]
    • entrypoint.sh
    #!/bin/sh
    php /usr/src/myapp/app.php start

    构建&&启动

    • 构建
    docker-compose build
    • 启动
    docker-compose up -d
    • 访问效果
    curl -i http://localhost:2345
    HTTP/1.1 200 OK
    Content-Type: text/html;charset=utf-8
    Connection: keep-alive
    Server: workerman/3.5.22
    Content-Length: 13
    hello world 

    常见问题说明

    • pcntl 配置问题
      日志信息
     
    Fatal error: Uncaught Error: Call to undefined function pcntl_signal() 

    因为默认这个没有启用,解决方法:

    docker-php-ext-install pcntl
    • 其他依赖问题
      安装event 需要sockets,安装sockets 需要openssl

    参考资料

    http://doc.workerman.net/install/install.html
    https://github.com/rongfengliang/workerman-docker
    https://github.com/walkor/Workerman

  • 相关阅读:
    内置方法(item系列、__str__方法、__del__方法)
    POJ3436
    CF551B
    HDU1588
    HDU3117
    CF834D
    CF832D
    CF832C
    POJ1930
    POJ3666
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12067677.html
Copyright © 2011-2022 走看看