Docker安装 Workerman环境 php拓展问题 求助

abcde123456

有人用docker吗 你们的Dockfile是怎样写的

阅读 2865
2个回答

abcde123456

我重新配了下这个可以用 主要是 安装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

  • qkhhxkj 2021-12-16

    大佬用了你的这个dockerfile 不行呢,我用的是GatewayWorker ,能不能给个GatewayWorker 的dockerfile谢谢了