[toc]

构建一个php-fpm+nginx开发环境

OFFICIAL

https://hub.docker.com/_/redis/

什么是alpine

Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版。 Docker官方镜像将会使用Alpine Linux替换Ubuntu - Docker容器的优势是轻量和可移植,所以承载它的操作系统也应该尽量迎合这个特性。 大小只有5M!

更改镜像源

国内访问 Docker Hub 有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了加速器服务,例如:

注册用户并且申请加速器,会获得如 https://xxxx.mirror.aliyuncs.com 这样的地址。我们需要将其配置给 Docker 引擎。

docker加速器

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://???????.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装开发环境

|-- docker-compose.yml
|-- nginx
|   |-- Dockerfile
|   |-- fastcgi_params
|   |-- nginx.conf
|   `-- vhosts
|       `-- your.domain.conf
|-- php7
|   |-- Dockerfile
|   |-- ext
|   |   |-- mongodb-1.2.9.tgz
|   |   |-- redis-3.1.2.tgz
|   |   |-- xdebug-2.5.3.tgz
|   |   `-- yaconf-1.0.5.tgz
|   |-- php-fpm.conf
|   |-- php.ini
|   `-- yaconf

nginx Dockerfile

FROM nginx:1.13.1-alpine
MAINTAINER neo<[email protected]>
ADD  ./nginx.conf      /etc/nginx/nginx.conf
ADD  ./fastcgi_params  /etc/nginx/fastcgi_params
ADD  ./vhosts /etc/nginx/vhosts
RUN mkdir -p /www/ && mkdir -p /var/log/nginx/

php Dockerfile

FROM php:7.1.6-fpm
MAINTAINER neo<[email protected]>
COPY ext /usr/local/src/
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
        supervisor \
        nscd \
        openssl \
        curl \
        pkg-config \
        libssl-dev \
    && docker-php-ext-install -j $(nproc) mcrypt pdo_mysql opcache \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include \
    && docker-php-ext-install -j $(nproc) gd \
    && ( \
       cd /usr/local/src \
       && tar -zxvf mongodb-1.2.9.tgz  \
       && rm -rf mongodb-1.2.9.tgz \
       && cd mongodb-1.2.9 \
       && phpize \
       && ./configure \
       && make -j$(nproc) \
       && make install \
    ) \
    && docker-php-ext-enable mongodb \
    && ( \
       cd /usr/local/src \
       && tar -zxvf yaconf-1.0.5.tgz  \
       && rm -rf yaconf-1.0.5.tgz \
       && cd yaconf-1.0.5 \
       && phpize \
       && ./configure \
       && make -j$(nproc) \
       && make install \
    ) \
    && docker-php-ext-enable yaconf \
    && ( \
       cd /usr/local/src \
       && tar -zxvf redis-3.1.2.tgz  \
       && rm -rf redis-3.1.2.tgz \
       && cd redis-3.1.2 \
       && phpize \
       && ./configure \
       && make -j$(nproc) \
       && make install \
    ) \
    && docker-php-ext-enable redis \
    && docker-php-source delete \
    && rm -rf /usr/local/src/* \
    && mkdir -p /var/log/php && touch /var/log/php/errors.log \
    && touch /var/log/php/php-fpm.slow.log \
    && apt-get autoclean \
    && apt-get autoremove \
    && usermod -u 1002 www-data

运行

docker-compose 根目录运行

docker-compose up -d

results matching ""

    No results matching ""