前言:
继上一篇windows本地使用docker+nginx+mysql部署thinkphp5https://blog.csdn.net/hmx089674/article/details/136683679本期使用docker-compose搭建环境访问thinkphp5程序。
第一步:准备工作
- 检查本地是否安装docker-compose(cmd终端输入docker-compose -v 检测,安装Docker Desktop默认是有的)。
- 确保您已了解docker-compose基本语法。
第二步:创建docker-compose.yml文件
如您不了解docker-compose语法也没关系,为了避免废话。直接贴docker-compose.yml内容
#docker-compose 版本
version: '3'
#创建服务,可理解为创建容器。
services:
#拉取nginx镜像
nginx:
#镜像版本
image: nginx:latest
#暴露的端口
ports:
- "8001:80"
#挂载宿主机文件(宿主机文件:容器内文件)
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./html:/var/www/html
#使用depends_on 指定服务之间的依赖关系
depends_on:
- php
#服务所依赖网络
networks:
- app-network
#拉取php-fpm镜像
php:
image: php:7.4-fpm
volumes:
- ./html:/var/www/html
networks:
- app-network
#定义网络
networks:
#网络名称
app-network:
#网络驱动类型
driver: bridge
第三步:启动docker-compose构建服务
1、nginx配置文件default.conf内容如下:
server {
listen 80;
index index.php;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/app/public;#指向容器内部thinkphp程序的public目录
# location / {
# try_files $uri $uri/ /index.php?$query_string;
# }
#隐藏入口文件index.php
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
location ~ \.php$ {
fastcgi_pass php:9000;#容器名php,在Docker容器中,如果你使用PHP-FPM镜像,默认情况下PHP-FPM会监听9000端口
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
}
2、本地文件目录如下:
3、启动构建:启动docker-compose.yml
在docker-compose.yml文件所在目录启动cmd终端输入docker-compose up;
启动成功结果如下:-d表示后台运行,不输出任何结果到终端。
查看Docker Desktop,结果如下就成功搭建了。
访问localhost:8001查看效果:
是不是很熟悉 ,哈哈哈!
结语:
使用docker-compose配置很好玩,上述都配置好了之后,就可以愉快的使用thinkphp5写业务了。
本篇博客地址https://shixingxinya.github.io/website/zh-CN/docker/compose.html