有人用docker嗎 你們的Dockfile是怎樣寫的
我重新配了下這個可以用 主要是 安裝event拓展需要 openssl 和 libssl-dev?
sockets、mysqli、opcache 根據(jù)需要選擇
我也順便加上 composer 根據(jù)情況選擇
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是常駐內(nèi)存的 所以也不需要opcache擴展
#只要在php官方鏡像基礎(chǔ)上開啟那些workerman需要的模塊就可以了
#開啟需要的模塊可以用php官方鏡像里提供的命令docker-php-ext-install
#redis和event擴張 自帶命令不能安裝 用pecl安裝
FROM php
MAINTAINER 741162948@qq.com
RUN apt-get update
#安裝必要的擴展 擴展posix已經(jīng)默認開啟 還需要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
#啟用正式環(huán)境的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