使用docker-compose部署lnmp环境
使用docker-compose部署lnmp环境
中文
参考链接
https://blog.csdn.net/xiazichenxi/article/details/95652457
最终部署
路径:/root/docker-compose/lnmp
docker-compose.yml
version: "3"
services:
mysql:
hostname: mysql
restart: always
image: mysql:5.6
container_name: mysql
ports:
- "3306:3306"
volumes:
- mysql-config:/etc/mysql
- mysql-log:/var/log/mysql
- mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: user
MYSQL_PASSWORD: user123
php:
hostname: php
restart: always
container_name: php
image: php:7.3-fpm
ports:
- "9000:9000"
links:
- mysql:mysql
volumes:
- nginx-html:/var/www/html
- php-config:/usr/local/etc
nginx:
hostname: nginx
restart: always
container_name: nginx
image: nginx:1.17.0
ports:
- "80:80"
- "443:443"
links:
- "php:php"
volumes:
- nginx-config:/etc/nginx
- nginx-log:/var/log/nginx
- nginx-html:/usr/share/nginx/html
volumes:
mysql-config:
mysql-log:
mysql-data:
nginx-html:
php-config:
nginx-config:
nginx-log:
部署成功后,在/var/lib/docker/volumes目录下,增加下面的目录:
lnmp_mysql-config lnmp_mysql-data lnmp_mysql-log lnmp_nginx-config lnmp_nginx-html lnmp_nginx-log lnmp_php-config
估计前缀lnmp是跟目录有关系。
修改文件,有两种方式,一种是在docker外,/var/lib/docker/volumes目录下直接修改。另外一种,使用exec进入容器,再修改。
修改nginx的配置nginx-config:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000; #这里php就是php容器的名字
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; #此处配置要注意,有坑
include fastcgi_params;
}
}
升级版本
使用上面的配置,但是增加了build过程。
目录:
lnmp/
├── docker-compose.yml
└── php
└── Dockerfile
更改docker-compose.yml文件,php镜像那块 ,image替换如下:
build:
context: ./php
dockerfile: Dockerfile
Dockerfile文件内容:
FROM php:7.0-fpm
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
libmemcached-dev \
zlib1g-dev \
libcurl4-openssl-dev \
libxml2-dev \
--no-install-recommends && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-install -j$(nproc) \
iconv mcrypt gettext curl mysqli pdo pdo_mysql zip \
mbstring bcmath opcache xml simplexml sockets hash soap \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
CMD ["php-fpm", "-F"]