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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM