php开发docker环境配置

镜像的创建

Dockerfile

FROM php:5.6-fpm

#安装扩展

#安装oracle扩展需要的文件
COPY ./extensions/oci8 /opt/

RUN \
  apt-get update \
  # 安装源码包里面的扩展
  && docker-php-ext-install -j$(nproc) bcmath pdo_mysql \
  #安装gd库
  # && apt-get install -y libfreetype6-dev libpng-dev libjpeg62-turbo-dev \
  # && docker-php-ext-install -j$(nproc) gd \
  #安装xdebug扩展
  && cd /opt && curl -o xdebug-2.4.0.tgz http://pecl.php.net/get/xdebug-2.4.0.tgz && tar -zxvf xdebug-2.4.0.tgz && cd xdebug-2.4.0 && phpize && ./configure && make && make install &&  docker-php-ext-enable xdebug \
  #安装redis扩展
  && cd /opt && curl -o redis-4.3.0.tgz  http://pecl.php.net/get/redis-4.3.0.tgz && tar -zxvf redis-4.3.0.tgz && cd redis-4.3.0 && phpize && ./configure && make && make install && docker-php-ext-enable redis \
  #安装gearman扩展
  && cd /opt && curl -o gearman-1.1.2.tgz  http://pecl.php.net/get/gearman-1.1.2.tgz && tar -zxvf gearman-1.1.2.tgz && apt-get install -y libgearman-dev && cd gearman-1.1.2 && phpize && ./configure && make && make install && docker-php-ext-enable gearman \
  # && pecl install redis xdebug-2.4.0 && docker-php-ext-enable redis xdebug \
  #安装oracle扩展, 如果不需要请注释掉
  && sh /opt/install-oci8.sh

base镜像选择的是php官方镜像,它提供了docker-php-ext等工具,相当好用

创建容器

启动fpm容器

docker run -d --name php -v /Volumes/work:/code dev/php56

这里没有使用-p指定暴露的端口,为什么呢?

启动nginx容器

docker run -d --name nginx -p 80:80  -v /Volumes/work:/code
 -v /opt/docker/conf/nginx:/etc/nginx/conf.d --link php:php  nginx

之所以fpm容器没有暴露端口是因为,nginx容器链接到了fpm容器
nginx location配置

location ~ \.php($|/) {
        fastcgi_pass               php:9000;
        fastcgi_split_path_info   ^(.+?\.php)(/.+)$;
        fastcgi_param           SCRIPT_FILENAME /code/shopCrm/web/$fastcgi_script_name;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        include                 fastcgi_params;
    }

location的里面php:9000, 因为使用的是link所以可以直接使用php代表fpm的ip地址

你可能感兴趣的:(php开发docker环境配置)