##docker-compose 创建nginx+php

mkdir -p composetest/nignx
cd composetest
##########

vim nginx/Dockerfile
#################
FROM centos:6.8
WORKDIR /usr/src
RUN yum install -y zlib-devel gd-devel pcre-devel pcre openssl-devel lua lua-devel gcc gcc-c++ wget
RUN wget -q http://indoor.meilele.com/download/centos/nginx-1.0.8.tar.gz
RUN wget -q http://indoor.meilele.com/download/centos/ngx_open.tar.gz
RUN tar zxf ngx_open.tar.gz -C /usr/src/
RUN tar zxf nginx-1.0.8.tar.gz -C /usr/src/

WORKDIR /usr/src/nginx-1.0.8
RUN useradd -M -s /sbin/nologin nginx

RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --add-module=/usr/src/ngx_openresty/ngx_devel_kit --add-module=/usr/src/ngx_openresty/array-var-nginx-module --add-module=/usr/src/ngx_openresty/headers-more-nginx-module --add-module=/usr/src/ngx_openresty/rds-csv-nginx-module --add-module=/usr/src/ngx_openresty/auth-request-nginx-module --add-module=/usr/src/ngx_openresty/iconv-nginx-module --add-module=/usr/src/ngx_openresty/memc-nginx-module --add-module=/usr/src/ngx_openresty/rds-json-nginx-module --add-module=/usr/src/ngx_openresty/redis2-nginx-module --add-module=/usr/src/ngx_openresty/set-misc-nginx-module --add-module=/usr/src/ngx_openresty/echo-nginx-module --add-module=/usr/src/ngx_openresty/srcache-nginx-module --add-module=/usr/src/ngx_openresty/encrypted-session-nginx-module --add-module=/usr/src/ngx_openresty/form-input-nginx-module --add-module=/usr/src/ngx_openresty/xss-nginx-module --add-module=/usr/src/ngx_openresty/ngx_lua/ --with-http_ssl_module --add-module=/usr/src/ngx_openresty/ipseek --with-http_image_filter_module && make && make install

RUN wget http://indoor.meilele.com/download/centos/script/install/ngservice.sh -O /etc/init.d/nginx
RUN chmod 755 /etc/init.d/nginx
RUN chkconfig --add nginx

RUN egrep -v '#|^$' /usr/local/nginx/conf/nginx.conf.default >/usr/local/nginx/conf/nginx.conf
RUN mkdir -p /data/html
RUN mkdir -p /usr/local/nginx/conf/conf.d && sed -i '/server {/ i include conf/conf.d\/\*.conf;' /usr/local/nginx/conf/nginx.conf

RUN sed -i '/location \/ {/ i location ~ \.php(.*)$ {\nfastcgi_pass   127.0.0.1:9000;\nfastcgi_index  index.php;\nfastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;\nfastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;\nfastcgi_param  PATH_INFO  $fastcgi_path_info;\nfastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;\ninclude        fastcgi_params;\n}' /usr/local/nginx/conf/nginx.conf

RUN sed -i 's/index  index.html index.htm.*/index  index.html index.htm index.php;/g' /usr/local/nginx/conf/nginx.conf
RUN echo "<?php phpinfo(); ?>" >/usr/local/nginx/html/index.php


###########install php5.6.0
RUN yum install -y epel-release
RUN yum install -y gd-devel pcre-devel pcre lua lua-devel gcc gcc-c++ wget libxml2 libxml2-devel curl-devel curl openldap openldap-clients openldap-devel openldap-servers patch bzip2 openssl openssl-devel bzip2-devel libxslt libxslt-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel libmcrypt-devel mcrypt tree

RUN [ $(grep -c 'include /usr/local/lib/*.conf' /etc/ld.so.conf) -eq 0 ] && echo 'include /usr/local/lib/*.conf' >>/etc/ld.so.conf && ldconfig
RUN cp -frp /usr/lib64/libldap* /usr/lib/

#RUN useradd -M -s /sbin/nologin php
##--with-fpm-user=php --with-fpm-group=php

#RUN wget -q http://cn2.php.net/distributions/php-5.6.0.tar.gz
RUN wget -q http://indoor.meilele.com/download/centos/php-5.6.0.tar.gz
RUN wget -q http://pecl.php.net/get/memcache-2.2.7.tgz

RUN wget -q https://jaist.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz --no-check-certificate
RUN wget -q https://github.com/alanxz/rabbitmq-c/releases/download/v0.7.1/rabbitmq-c-0.7.1.tar.gz --no-check-certificate
RUN wget -q https://pecl.php.net/get/amqp-1.6.1.tgz --no-check-certificate

RUN wget -q http://indoor.meilele.com/download/centos/ImageMagick-6.9.8-10.tar.gz
RUN wget -q http://pecl.php.net/get/imagick-3.1.0.tgz
RUN wget -q http://pecl.php.net/get/xhprof-0.9.4.tgz

RUN tar zxf php-5.6.0.tar.gz -C /usr/src/
RUN tar zxf memcache-2.2.7.tgz -C /usr/src/
RUN tar zxf php_screw-1.5.tar.gz -C /usr/src/
RUN tar zxf rabbitmq-c-0.7.1.tar.gz -C /usr/src/
RUN tar zxf amqp-1.6.1.tgz -C /usr/src/
RUN tar zxf ImageMagick-6.9.8-10.tar.gz -C /usr/src/
RUN tar zxf imagick-3.1.0.tgz -C /usr/src/
RUN tar zxf xhprof-0.9.4.tgz -C /usr/src/

RUN cd /usr/src/php-5.6.0 && ./configure --prefix=/usr/local/php  --with-config-file-path=/usr/local/php/etc  --with-mysql  --with-zlib  --enable-xml  --disable-rpath  --enable-bcmath  --enable-shmop  --enable-sysvsem  --with-curl   --enable-fpm  --with-mcrypt  --with-gd  --with-openssl  --with-mhash  --enable-sockets  --with-ldap  --with-ldap-sasl  --with-xmlrpc  --enable-zip  --enable-soap  --with-png-dir  --with-jpeg-dir  --with-freetype-dir   --enable-mbstring   --enable-session  --enable-ftp  --enable-calendar  && make  && make install  && \cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod 755 /etc/init.d/php-fpm && egrep '^[a-zA-Z[]' /usr/local/php/etc/php-fpm.conf.default >/usr/local/php/etc/php-fpm.conf && grep '^[a-zA-Z[]' php.ini-production >/usr/local/php/etc/php.ini && cd ext/mbstring && /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config  && make  && make install

RUN cd /usr/src/memcache-2.2.7 && /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config  && make  && make install
RUN [ $(grep -c 'extension=memcache.so' /usr/local/php/etc/php.ini) -eq 0 ] && echo ' extension=memcache.so' >>/usr/local/php/etc/php.ini

RUN cd /usr/src/php_screw-1.5 && /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config  && make  || (cp -frp php_screw.c php_screw.c.bak; sed -i 's#CG(extended_info) = 1;#CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;#g' php_screw.c ;make ) && make install
RUN [ $(grep -c 'extension=php_screw.so' /usr/local/php/etc/php.ini) -eq 0 ] && echo ' extension= php_screw.so' >>/usr/local/php/etc/php.ini

RUN cd /usr/src/rabbitmq-c-0.7.1 && ./configure --prefix=/usr/local/rabbitmq-c-0.7.1  && make  && make install

RUN cd /usr/src/amqp-1.6.1 && /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.7.1  && make  && make install


ENV CPPFLAGS -Ic:/Progra~1/GnuWin32/include
ENV LDFLAGS -Lc:/Progra~1/GnuWin32/lib
RUN cd /usr/src/ImageMagick-6.9.8-10 && ./configure --without-perl  && make  && make install  && ln -s /usr/local/include/ImageMagick-6 /usr/local/include/ImageMagick


RUN cd /usr/src/imagick-3.1.0 && /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config  && make  && make install
RUN [ $(grep -c 'extension=imagick.so' /usr/local/php/etc/php.ini) -eq 0 ] && echo 'extension = imagick.so' >>/usr/local/php/etc/php.ini

RUN cd /usr/src/xhprof-0.9.4 && cd extension/ ;/usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config --enable-xhprof  && make  && make install
RUN [ $(grep -c 'extension=xhprof.so' /usr/local/php/etc/php.ini) -eq 0 ] && (mkdir -p /data/www/xhprof/output ;echo -e "[xhprof]\nextension=xhprof.so\nxhprof.output_dir=/data/www/xhprof/output" >>/usr/local/php/etc/php.ini)

EXPOSE 80 443
CMD /etc/init.d/php-fpm start && /usr/local/nginx/sbin/nginx -g "daemon off;"

########################

cat >docker-compose.yml <<EOF
version: "3"
services:
  nginx:
    build: nginx/
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /data/nginx/conf.d:/usr/local/nginx/conf/conf.d
      - /data/nginx/html:/data/html
EOF
##########################
docker-compose -f docker-compose.yml up -d
02-10 04:48