default.conf
//default.conf
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Dockerfile
# Dockerfile
# 使用官方 Nginx 作为基础镜像
FROM nginx:alpine3.17
# 配置阿里云镜像源,加快构建速度。
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories
# 安装 PHP 和 PHP-FPM
RUN apk add --no-cache php81 php81-fpm php81-mbstring php81-mysqli php81-pdo php81-pdo_mysql php81-opcache php81-phar php81-xml php81-json php81-curl php81-ctype
# 配置 Nginx
COPY default.conf /etc/nginx/conf.d/default.conf
# 复制 ThinkPHP 应用程序代码到容器中
COPY . /var/www/html
# 设置工作目录
WORKDIR /var/www/html
# 暴露端口 80
EXPOSE 80
# 启动 PHP-FPM 和 Nginx
CMD ["sh", "-c", "php-fpm81 -F & nginx -g 'daemon off;'"]