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

说明:
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  

放图:


文件内容如下:
app / 1.php
引用

<?php
phpinfo();



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

build / docker-compose.yml
引用

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;'



build / nginx / Dockerfile
引用

FROM nginx:1.12

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


build / nginx / conf.d / default.conf
引用

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;
    }

}



build / php / Dockerfile

引用

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


然后,
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

欣赏一下

















猜你喜欢

转载自xieye.iteye.com/blog/2429779