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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM