欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-11 12:46:32
...
我的docker-compose学习系列文章
docker-compose 构建php72-fpm从零起步(1)
docker-compose 构建php72-fpm从零起步(2)
docker-compose 构建php72-fpm从零起步(3)


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

放图:
docker-compose 构建php72-fpm从零起步(1)
            
    
    博客分类: PHPdocker dockerdocker-composephp-fpm 

文件内容如下:
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

欣赏一下
docker-compose 构建php72-fpm从零起步(1)
            
    
    博客分类: PHPdocker dockerdocker-composephp-fpm 

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















  • docker-compose 构建php72-fpm从零起步(1)
            
    
    博客分类: PHPdocker dockerdocker-composephp-fpm 
  • 大小: 12.3 KB
  • docker-compose 构建php72-fpm从零起步(1)
            
    
    博客分类: PHPdocker dockerdocker-composephp-fpm 
  • 大小: 135.8 KB