使用 docker-compose 安装 php 运行环境 —— link 的方式

———————— 安装步骤 - link 的方式 ————————

 

特别说明:此方式不建议,并于即将被废弃,请查看 network 的方式。

 

直接上步骤:

1、centOS下需要升级 yum —— 不然可能会有一些神经病的错误发生

yum update

2、将已经写好的 yml 包以及 Dockerfile 等下载到根目录:

cd /
git clone https://github.com/lftm1111/docker-compose-php.git

3、进入 docker-composer-php 目录,即 docker-compose.yml 所在的目录

cd docker-compose-php

4、配置并修改.env 文件

cp .env.example .env
vim .env

—— .env 配置建议:

// mac上
DIR_WWW=/Users/linfeng/data/www/
DIR_REDIS_DATA=/Users/linfeng/data/redis/
DIR_MYSQL_DATA=/Users/linfeng/data/mysql/

// centOS 上
DIR_WWW=/data/www/
DIR_REDIS_DATA=/data/redis/
DIR_MYSQL_DATA=/data/mysql/

5、运行 docker-compose:

docker-compose up -d

6、如果要启动的是里面的 docker-compose.build.yml 文件,则执行:

docker-compose -f docker-compose.build.yml up -d

—— 关于docker-compose.yml 文件和 docker-compose.build.yml 的区别,请看下面的特别说明

—— 好了,执行成功后,会有四个容器在运行。配置虚拟主机和项目,这个都不知道那就没办法了。

 

 

// 特别说明:

我们下载下来的包里面有两个文件,其中只有一处差别,在 phpfpm 那里,分别如下:

docker-compose.yml 部分:

phpfpm:
    image: raven666/ct-phpfpm:latest
    container_name: ct-phpfpm
    expose:
      - "9000"

docker-compose.build.yml 部分:

phpfpm:
    image: raven666/ct-phpfpm:latest
    container_name: ct-phpfpm
    build:
      context: .
      dockerfile: Dockerfile
    expose:
      - "9000"

—— 因为 docker-compose.yml 文件的每个服务都需要指定镜像,指定的方式有两种:

1、直接指定 image,会从 dockerhub 拉取。

2、指定 build ,即指定本地的 Dockerfile文件进行构建镜像。

那么,docker-compose.build.yml 中指定了 build,image 参数表示的是构建后的名字。

—— 所以,第一种是直接拉取叫做 raven666/ct-phpfpm:v1 的镜像,其实这个镜像就是我构建后传到 dockerhub 的

—— 第二种,就是使用本地文件 Dockerfile 重新构建一次这个 phpfpm 镜像,并在本地命名为 raven666/ct-phpfpm:v1

 

 

—— 项目目录:/data/www

—— 虚拟主机配置目录:/docker-compose-php/conf/nginx/conf.d

—— 以上的方法中使用到的是 link,而这个即将会被废弃,所以我们的将会出使用关于 network 的方法。关于 docker 的 network 基础知识,不明白的,可以看本博客的另一篇文章。

 

// 虚拟主机配置示例 —— /docker-compose-php/conf/nginx/conf.d/laravel.xxx.con.conf:

server {
    listen       80;

    set $root /data/www/laravel/public;
    server_name  laravel.xxx.com;
    
    root   $root;
    index index.php index.html index.htm;

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

    location ~ index\.php {
        root           $root;
        fastcgi_pass   fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

 

posted @ 2018-12-17 21:31  小寒1206  阅读(3865)  评论(0编辑  收藏  举报