docker-composer是什么?使用docker-composer构建该怎么做?

2022-01-18 16:51:16

来源:php中文网

本文由composer教程栏目给大家介绍怎么使用docker-composer构建一个简单nginx+php环境,希望对需要的朋友有所帮助!

目录结构

➜ Study tree

├── conf

├── docker-compose.yaml

├── nginx

│ ├── conf

│ │ └── laravel.conf

│ └── html

│ └── index.php

index.php

1

2

3

4

5

6

7

8

/**

* Created by OrangBus

* User email: orangbus40400@gmail.com

* website: orangbus.cn

* blog: doc.orangbus.cn

* github: github.com/orangbus

*/echo phpinfo();

nginx.conf

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.html index.htm index.php;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

fastcgi_pass php8:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /html$fastcgi_script_name;

include fastcgi_params;

}}

重点说明

1

fastcgi_pass php8:9000;

php8: php容器的名称,如果你想配置多个php版本,只需要将php的配置复制一份就可以,填写对应的php容器名称

php8: # php的容器名称

image: php:8.0-fpm

restart: always

volumes:

- ./nginx/html:/html--------------------------------

php74: # 对应的nginx配置文件为:fastcgi_pass php74:9000;

image: php:8.0-fpm

restart: always

volumes:

- ./nginx/html:/html

1

fastcgi_param SCRIPT_FILENAME /html$fastcgi_script_name;

/html :php项目映射到 【php 容器的目录】(红色)

docker-compose

1

2

3

4

5

6

7

8

9

10

version: '3.5'services:

nginx:

image: nginx:latest restart: always ports:

- 8010:80

volumes:

- ./nginx/html/:/usr/share/nginx/html # 注意点一

- ./nginx/conf/:/etc/nginx/conf.d/ links:

- php8 php8:

image: php:8.0-fpm restart: always volumes:

- ./nginx/html:/html #注意点二

注意点一:

./nginx/html :本机你的php项目地址

/usr/share/nginx/html: nginx默认的访问地址

注意点二:

./nginx/html :本机你的php项目地址

/html: 这里地址是将你本地的php代码映射到php的容器当中,一般是和你nginx配置的地址是一致的 (红色)

Tip:请留意两处红色的区域的关联,这样一个简单的nginx+php关联的环境就配置成功了。

踩坑指南:

当使用-link 时,连接容器的自定义端口将失效,举例

1

2

3

4

5

6

7

version: '3.5'services:

php8:

image: php:8.0-fpm restart: always volumes:

- ./nginx/html:/html links: # 如果使用 links ,当我们php程序中填写mysql端口的时候应该是 3306 而不是 3307,但是我们外部是需要用3307端口去连接mysql的

- mysql mysql:

image: mysql:latest ports:

- 3307:3306

以上就是docker-composer快速构建nginx+php环境的详细内容

关键词: docker-composer docker composer 构建