🐳 Docker 秒级启动 workerman/webman 高性能项目

Tinywan

想快速部署一个基于 workerman/webman 的高性能服务?一条 Docker 命令即可搞定!

🚀 一行命令启动

docker run -d \
  --name docker-webman \
  -it \
  -p 8787:8787 \
  -v D:/dnmp/www/webman/webman.tinywan.com:/app \
  tinywan/docker-php-webman:7.4.33-cli-alpine

启动后,服务监听在宿主机的 8787 端口,代码目录已映射为 webman.tinywan.com

🛠️ 常用管理命令速查

Webman 服务控制

# 平滑重载(改完代码最常用)
docker exec docker-webman php start.php reload

# 完整重启 / 停止 / 状态 / 连接数
docker exec docker-webman php start.php restart
docker exec docker-webman php start.php stop
docker exec docker-webman php start.php status
docker exec docker-webman php start.php connections

Docker 容器常用操作

# 查看日志(最常用)
docker logs -f docker-webman
docker logs --tail 100 docker-webman

# 容器管理
docker stop docker-webman
docker start docker-webman
docker restart docker-webman
docker rm -f docker-webman          # 强制删除

# 进入容器
docker exec -it docker-webman sh

Composer 依赖管理

docker exec docker-webman composer install
docker exec docker-webman composer update
docker exec docker-webman composer require workerman/workerman

💡 推荐加入 shell 别名(~/.bashrc 或 ~/.zshrc)

alias dw='docker exec docker-webman'
alias dw-reload='dw php start.php reload'
alias dw-restart='dw php start.php restart'
alias dw-status='dw php start.php status'
alias dw-conns='dw php start.php connections'
alias dw-logs='docker logs -f docker-webman'

设置完成后,直接输入 dw-reload 即可秒级热更新,开发体验非常丝滑。

PHP 版本

┌──────────┬────────────────────┐
│ PHP 版本 │      推荐标签       │
├──────────┼────────────────────┤
│ PHP 7.4  │ v7.4.33-cli-alpine │
├──────────┼────────────────────┤
│ PHP 8.1  │ v8.1.28-cli-alpine │
├──────────┼────────────────────┤
│ PHP 8.2  │ v8.2.17-cli-alpine │
├──────────┼────────────────────┤
│ PHP 8.3  │ v8.3.30-cli-alpine │
├──────────┼────────────────────┤
│ PHP 8.4  │ v8.4.16-cli-alpine │
└──────────┴────────────────────┘

1Panel 容器

s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Workerman[start.php] start in DEBUG mode
Master pid:67 is not alive
----------------------------------------------------------- WORKERMAN -----------------------------------------------------------
Workerman/5.1.3         PHP/8.4.17 (JIT off)          Linux/6.8.0-90-generic
------------------------------------------------------------ WORKERS ------------------------------------------------------------
event-loop  proto       user        worker                              listen                      count       state            
event       tcp         root        webman                              http://0.0.0.0:8288         4            [OK]            
event       tcp         root        monitor                             none                        1            [OK]            
event       tcp         root        plugin.tinywan.rpc.text.protocol    text://0.0.0.0:9512         10           [OK]            
event       tcp         root        plugin.webman.channel.server        frame://0.0.0.0:2206        1            [OK]            
event       tcp         root        plugin.webman.push.server           websocket://0.0.0.0:3131    1            [OK]            
---------------------------------------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.

扩展列表

bcmath
bz2
calendar
Core
ctype
curl
date
dom
event
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
SimpleXML
sockets
sodium
SPL
sqlite3
standard
swoole
tokenizer
xlswriter
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache
871 4 6
4个评论

Jinson

👍👍👍

  • 暂无评论
gangpula32

👍

  • 暂无评论
miraclesev

8.+的版本扩展能加下oracle么,好多docker8以上都没有oracle

掌柜

妙啊 已收藏 感谢大佬分享

  • 暂无评论

Tinywan

14580
积分
0
获赞数
0
粉丝数
2020-01-14 加入
🔝