文件结构如图所示
docker-compose.yml
version: "3"
services :
nginx:
build: ./nginx #编译./mysql下的Dockerfile
ports:
- 80:80 # 绑定服务器端口:容器端口
volumes:
- G:\web:/var/wwwroot
php:
build: ./php
volumes:
- G:\web:/var/wwwroot
nginx-Dockerfile
from nginx:1.13-alpine
run mkdir -p /var/wwwroot && mkdir -p /etc/nginx/conf.d/ssl
add weiphp.cluby.cn.conf /etc/nginx/conf.d
add index.html /usr/share/nginx/html/index.html
user root
weiphp.cluby.cn.conf
server {
listen 80;
server_name weiphp.cluby.cn ;
root /var/wwwroot/weiphp.cluby.cn/public;
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php$uri;
#autoindex on;
}
location ~ \.php(.*)$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
php-Dockerfile
from php:7.3.3-fpm-alpine3.9
run mkdir -p /var/wwwroot
ENV TIMEZONE Asia/Shanghai
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&&apk update
RUN apk add tzdata git ansible && ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime && echo $TIMEZONE > /etc/timezone
RUN docker-php-ext-install mbstring opcache pdo pdo_mysql
#添加扩展 gd zip
RUN apk add --no-cache freetype libpng libjpeg-turbo freetype-dev libpng-dev zlib-dev libzip-dev libjpeg-turbo-dev && \
docker-php-ext-configure gd \
--with-gd \
--with-freetype-dir=/usr/include/ \
--with-png-dir=/usr/include/ \
--with-jpeg-dir=/usr/include/ \
--with-zlib-dir=/usr && \
NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) && \
docker-php-ext-install -j${NPROC} gd zip && \
apk del --no-cache freetype-dev libpng-dev libjpeg-turbo-dev
WORKDIR /var/wwwroot
user root