美文网首页
docker workerman

docker workerman

作者: 张大胆_6a19 | 来源:发表于2019-04-06 17:22 被阅读0次
一、docker php && event,参考lnmp
FROM centos:7
MAINTAINER 569072171@qq.com

# 更新yum远
RUN yum install epel-release -y && yum update -y

# 更新环境(包括php)依赖的组件
RUN yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel


# 安装php
FROM centos:7
MAINTAINER 569072171@qq.com

# 更新yum远
RUN yum install epel-release -y && yum update -y

# 更新环境(包括php)依赖的组件
RUN yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel


# 安装php、配置php.ini、配置php环境变量
ADD php-7.2.17.tar.gz /tmp/
RUN cd /tmp/php-7.2.17 && \
    ./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-config-file-scan-dir=/usr/local/php/conf.d \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-iconv-dir \
    --with-freetype-dir=/usr/local/freetype \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-libxml-dir=/usr \
    --enable-xml \
    --disable-rpath \
    --enable-bcmath \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --with-curl \
    --enable-mbregex \
    --enable-mbstring \
    --enable-intl \
    --enable-pcntl \
    --enable-ftp \
    --with-gd \
    --with-openssl \
    --with-mhash \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-zip \
    --enable-soap \
    --with-gettext \
    --enable-opcache && \
    make -j 4 && make install && \
    cp php.ini-production /usr/local/php/etc/php.ini && \
    sed -i 's/post_max_size =.*/post_max_size = 50M/g' /usr/local/php/etc/php.ini && \
    sed -i 's/upload_max_filesize =.*/upload_max_filesize = 50M/g' /usr/local/php/etc/php.ini && \
    sed -i 's/;date.timezone =.*/date.timezone = PRC/g' /usr/local/php/etc/php.ini && \
    sed -i 's/short_open_tag =.*/short_open_tag = On/g' /usr/local/php/etc/php.ini && \
    sed -i 's/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.ini && \
    sed -i 's/max_execution_time =.*/max_execution_time = 300/g' /usr/local/php/etc/php.ini && \
    sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,chgrp,chown,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru/g' /usr/local/php/etc/php.ini && \
    echo PATH=$PATH:/usr/local/php/bin >> /etc/profile && \
    echo export PATH >> /etc/profile && \
    source /etc/profile

# 安装event
ADD event-2.4.3.tgz /tmp/
RUN cd /tmp/event-2.4.3 && \
    /usr/local/php/bin/phpize && \
    ./configure --with-php-config=/usr/local/php/bin/php-config && \
    make && make install && \
    echo extension=event.so >> /usr/local/php/etc/php.ini



# 添加工作目录
RUN mkdir /home/wwwroot/workerman-thinkphp -p
# ADD workerman-thinkphp.tar.gz /home/wwwroot/

WORKDIR /home/wwwroot/workerman-thinkphp
# EXPOSE 80
# CMD ["/usr/local/php/bin/php", "think", "worker"]

a)验证安装event是否成功

# php -m |grep event

b)验证workerman是否成功

# curl -Ss http://www.workerman.net/check.php | php
二、文件包
image.png
三、build命令,注意"."
# docker build -t workerman:v20 .
四、run命令,生成多个容器
# docker container run -itd --name=workerman-thinkphp-5001 -p 5001:80 --mount type=bind,src=/home/wwwroot/workerman-thinkphp,dst=/home/wwwroot/workerman-thinkphp workerman:v10 /usr/local/php/bin/php think worker

# docker container run -itd --name=workerman-thinkphp-5002 -p 5002:80 --mount type=bind,src=/home/wwwroot/workerman-thinkphp,dst=/home/wwwroot/workerman-thinkphp workerman:v10 /usr/local/php/bin/php think worker
五、其他命令

a) 重启docker

b)删除全部容器(停止为stop)

# docker rm $(docker ps -a -q)

c)查看全部容器

# docker ps

d)查看停止运行容器

# docker ps -a

d)查看到单个容器日志(无论是否停止)

# docker logs -f bc374afdbead

e)删除镜像

# docker rmi <id>

相关文章

网友评论

      本文标题:docker workerman

      本文链接:https://www.haomeiwen.com/subject/knoriqtx.html