[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