docker-compose 构建php72-fpm从零起步(1)

[b][size=large]我的docker-compose学习系列文章[/size][/b]
[url=http://xieye.iteye.com/blog/2429779]docker-compose 构建php72-fpm从零起步(1)[/url]
[url=http://xieye.iteye.com/blog/2429811]docker-compose 构建php72-fpm从零起步(2)[/url]
[url=http://xieye.iteye.com/blog/2429815]docker-compose 构建php72-fpm从零起步(3)[/url]


说明:
docker-compose 这个文件就是单个的linux可执行文件,而docker宿主机就是linux。
所以只需下载这个文件并放到共享文件夹即可。再在linux下赋予权限。
而官网那个网址会被墙,所以网上找到如下网址。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > ./docker-compose
chmod +x ./docker-compose

===========================

命名特点:
docker-composer会自动命名镜像和容器。
镜像命名:文件夹+ 配置里的名称。
容器命名:镜像命名+ _1

========================

镜像选择:
这个 devilbox/php-fpm:7.2-mods 是我精心选择的。
特点就是,几乎所有常用的php插件都装了,开发特方便。

=========================
正文:

我的d盘,有docker_study目录,映射到docker宿主机的 / docker_study目录。

docker下,

cd / dcoker_study
mkdir compose
cd compose

在compose 下建立如下目录和文件
app
- 1.php
bin
- docker-compose
build
- nginx
-- conf.d
--- default.conf
-- Dockerfile
- php
-- Dockerfile
- docker-compose.yml

放图:
[img]http://dl2.iteye.com/upload/attachment/0130/6231/8093d2f1-d28c-3da3-af9e-bd135946d5a0.png[/img]

文件内容如下:
app / 1.php
[quote]
phpinfo();
[/quote]


bin / docker-compose
用本文上方介绍的方法得到

build / docker-compose.yml
[quote]
version: '3.2'
services:
php-fpm:
build: ./php/
ports:
- "9000:9000"
restart: always
volumes:
- ../app:/data/www:rw

nginx:
build: ./nginx
depends_on:
- php-fpm
links:
- php-fpm:php-fpm
volumes:
- ../app:/data/www:rw
- ./nginx/conf.d:/etc/nginx/conf.d:ro
ports:
- "80:80"
restart: always
command: nginx -g 'daemon off;'
[/quote]


build / nginx / Dockerfile
[quote]
FROM nginx:1.12

# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
[/quote]

build / nginx / conf.d / default.conf
[quote]
server {
listen 80 default;

autoindex off;
charset utf-8;
server_name localhost docker 127.0.0.1 www.test1.com;

root /data/www;
index index.php ;

location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}

location ~ \.php {
include fastcgi_params;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /data/www/$fastcgi_script_name;
}

}
[/quote]


build / php / Dockerfile

[quote]
FROM devilbox/php-fpm:7.2-mods

# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
[/quote]

然后,
docker pull nginx:1.12
docker pull devilbox/php-fpm:7.2-mods

cd /docker_study/compose/build/

这一步不能出错,否则查原因。
../bin/docker-compose build

这一步也不能出错。
../bin/docker-compose up -d


浏览器打开
http://192.168.99.100/1.php

欣赏一下
[img]http://dl2.iteye.com/upload/attachment/0130/6233/960b6a85-1853-38cb-9ea7-321fa159ea0f.png[/img]

退出应用
../bin/docker-compose down

你可能感兴趣的:(PHP)