# 基于docker的webman 我们在php:8.1.27-cli基础上安装了运行webman必要的一些扩展和开发中常用的扩展,以及composer,制作成workerman:8.1.27镜像,因此在开发环境中不需要再额外配置php环境,直接写业务代码即可。 > 把镜像的tag换成8.2.20即可把php版本换成8.2.20 ## 依赖 只要系统环境中有docker即可(生产环境需要docker-compose),不需要安装php环境。 ## 使用方法 ```sh # composer ./composer require xxxx # 启动服务 ./php start.php start # 执行其它php命令 ./php -m ./php webman build:bin ``` ## 生产环境使用 创建一个docker-compose.yml文件: ```yml services: webman: image: quay.io/wandoubaba517/workerman:8.1.27 container_name: webman restart: always volumes: - ./:/app/service working_dir: /app/service stdin_open: true ports: - 8787:8787 # 部署生产时启动这一句 command: ['php', 'start.php', 'start'] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8787/"] interval: 5s retries: 3 start_period: 5s timeout: 10s ``` 然后直接执行(前提要有docker-compose插件) ```sh docker compose up -d ``` ## 一些有用的文件 |文件|作用|用法或说明| |---|---|---| |composer|调起容器中的composer命令的shell脚本|用法与主机中的compose完全一致,./composer $args...| |php|调起容器中的php命令的shell脚本|用法与主机中的php一致,但注意执行./php start.php start命令时不要加-d参数| |php.ini|映射到容器中的php.ini配置文件|容器中已经安装的扩展都有单独的配置文件,这里不会有体现| ## 已安装PHP扩展 ```sh php -m [PHP Modules] bcmath Core ctype curl date dom event exif fileinfo filter ftp gd gmp hash iconv imagick json libxml mbstring mongodb mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix readline redis Reflection session SimpleXML sockets sodium SPL sqlite3 standard tokenizer xlswriter xml xmlreader xmlwriter Zend OPcache zip zlib zookeeper [Zend Modules] Zend OPcache ```