#安装必要的扩展 扩展posix已经默认开启 还需要pcntl sockets
RUN docker-php-ext-install pcntl sockets
#安装event event扩展依赖libevent-dev
RUN apt-get install libevent-dev -y
RUN sh -c '/bin/echo -e "no\nyes\n/usr\nno\nyes\nno\nyes\nno" | pecl install event'
RUN docker-php-ext-enable event
#安装pdo_mysql扩展 不需要可以不安装
RUN docker-php-ext-install pdo_mysql
#安装redis扩展 不需要可以不安装
RUN pecl install redis
RUN docker-php-ext-enable redis
RUN docker-php-source delete
#启用正式环境的php.ini配置文件
RUN mv "$PHP_INI_DIR/php.ini-production" "/php.ini"
#用workerman用户来运行容器
RUN groupadd -g 1000 workerman
RUN useradd -g dev -u 1000 workerman
USER workerman
#使用 docker run -dit -v /your/workerman/project/path:/path your_image_name php /path start.php
我重新配了下这个可以用 主要是 安装event拓展需要 openssl 和 libssl-dev
sockets、mysqli、opcache 根据需要选择
我也顺便加上 composer 根据情况选择
docker build -t php-workerman:v0.1-2 .
docker run --name wm -d -P -v /home/www:/var/www/ php-workerman:v0.1-2
FROM php:7.3-fpm
LABEL maintainer="Draula" version="v0.1-2"
RUN apt-get update \
&& apt-get install -y openssl libssl-dev \
&& docker-php-ext-install pcntl sockets mysqli opcache \
&& docker-php-ext-enable opcache \
&& apt-get install libevent-dev -y \
&& pecl install event \
&& echo "extension=event.so" > /usr/local/etc/php/conf.d/event.ini
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \
&& composer --ansi --version --no-interaction
EXPOSE 9000 80 443 9501 9527
CMD /usr/local/sbin/php-fpm
#github.com/Self-s/docker-workerman
#workerman是基于PHP命令行运行的 所以不需要php-fpm
#workerman是常驻内存的 所以也不需要opcache扩展
#只要在php官方镜像基础上开启那些workerman需要的模块就可以了
#开启需要的模块可以用php官方镜像里提供的命令docker-php-ext-install
#redis和event扩张 自带命令不能安装 用pecl安装
FROM php
MAINTAINER 741162948@qq.com
RUN apt-get update
#安装必要的扩展 扩展posix已经默认开启 还需要pcntl sockets
RUN docker-php-ext-install pcntl sockets
#安装event event扩展依赖libevent-dev
RUN apt-get install libevent-dev -y
RUN sh -c '/bin/echo -e "no\nyes\n/usr\nno\nyes\nno\nyes\nno" | pecl install event'
RUN docker-php-ext-enable event
#安装pdo_mysql扩展 不需要可以不安装
RUN docker-php-ext-install pdo_mysql
#安装redis扩展 不需要可以不安装
RUN pecl install redis
RUN docker-php-ext-enable redis
RUN docker-php-source delete
#启用正式环境的php.ini配置文件
RUN mv "$PHP_INI_DIR/php.ini-production" "/php.ini"
#用workerman用户来运行容器
RUN groupadd -g 1000 workerman
RUN useradd -g dev -u 1000 workerman
USER workerman
#使用 docker run -dit -v /your/workerman/project/path:/path your_image_name php /path start.php
大佬用了你的这个dockerfile 不行呢,我用的是GatewayWorker ,能不能给个GatewayWorker 的dockerfile谢谢了