项目文件结构
创建一个项目文件夹,结构如下
docker/
|-- nginx/
| |-- nginx.conf
| |-- Dockerfile
|-- php-fpm/
| |-- php-fpm.conf
| |-- Dockerfile
|-- html/
| |-- index.php
| |-- getcookie.php
| |-- cookie.txt
|-- docker-compose.yml
各配置文件
nginx.conf
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
nginx/Dockerfile
FROM nginx:latest
# 删除默认的 Nginx 配置文件
RUN rm /etc/nginx/conf.d/default.conf
# 将自定义 Nginx 配置文件复制到容器中
COPY nginx.conf /etc/nginx/conf.d/
# 暴露80端口
EXPOSE 80
php-fpm.conf
[global]
daemonize = no
[www]
listen = 9000
php-fpm/Dockerfile
#要下载的版本
FROM php:8.2-fpm
# 将自定义的 php-fpm 配置文件复制到容器中
COPY php-fpm.conf /usr/local/etc/php-fpm.d/
docker-compose.yml
version: '3'
services:
nginx:
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- "8000:80"
volumes:
- ./html:/usr/share/nginx/html
php-fpm:
build:
context: ./php-fpm
dockerfile: Dockerfile
volumes:
- ./html:/usr/share/nginx/html
开始搭建
用以下命令搭建docker容器
docker-compose up -d --build
访问测试
能正常显示