docker 搭建lnmp环境的方法步骤

2020-06-17 07:00:54易采站长站整理

创建项目目录


mkdir php

创建如下项目结构

sites 目录放置项目文件
services 目录放置服务相关配置
script 放置自定义脚本


├── Readme.md
├── docker-compose.yml
├── script
├── services
│ ├── mariadb
│ │ └── Dockerfile
│ ├── nginx
│ │ ├── Dockerfile
│ │ ├── conf.d
│ │ │ └── default.conf
│ │ └── nginx.conf
│ ├── php
│ │ └── Dockerfile
│ └── redis
│ └── Dockerfile
└── sites
├── index.html
└── index.php

8 directories, 10 files

编辑docker-compose文件


version: "3"
services:
php:
build: ./services/php
# ports:
# - "9001:9000"
container_name: lnmp-php
restart: always
volumes:
- ./sites:/www
networks:
lnmp_net:
ipv4_address: 101.11.11.10

nginx:
build: ./services/nginx
ports:
- "81:80"
- "444:443"
container_name: lnmp-nginx
restart: always
volumes:
- ./sites:/www
- ./services/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./services/nginx/conf.d:/etc/nginx/conf.d:rw
networks:
lnmp_net:
ipv4_address: 101.11.11.11

networks:
lnmp_net:
driver: bridge
ipam:
config:
- subnet: 101.11.11.0/20

编辑services/nginx文件


FROM nginx:1.17.0-alpine

# 更新安装源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

# 设置时区为上海
RUN apk update && apk add --upgrade
&& apk add tzdata
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo "Asia/Shanghai" > /etc/timezone
&& apk del tzdata

编辑services/php文件


FROM php:7.3.6-fpm-alpine3.9

# 更新安装源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

# 设置时区为上海
RUN apk update && apk add --no-cache tzdata autoconf gcc g++ make zlib-dev curl-dev
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo "Asia/Shanghai" > /etc/timezone
&& apk del tzdata
&& docker-php-ext-install mysqli pdo_mysql opcache
&& pecl install grpc protobuf xdebug yaf yar swoole
&& docker-php-ext-enable xdebug yaf yar swoole grpc protobuf

以上我们的lnmp环境基本搭建完毕,下面我们针对Php解析做相关的配置

修改services/nginx/nginx.conf,可根据需求自行修改