docker compose构建本地开发环境
docker compose相关
命令语法 : https://yeasy.gitbooks.io/docker_practice/compose/commands.html
模板文件语法 : https://yeasy.gitbooks.io/docker_practice/compose/compose_file.html
docker compose文件
docker compose会自动创建一个network(默认名称为 : compose配置文件所在目录名_default;比如目录名称为xxx,则network名称为 xxx_default),并将compose中的服务加入到该network中。
可以使用 --project-name
(可简写成 -p
) 参数或使用 COMPOSE_PROJECT_NAME
环境变量来自定义networ名称。
在docker compose配置文件中的服务可以直接使用服务名称进行访问,比如在web中可以使用php-fpm:9000访问php-fpm的php-fpm服务,参见下一个部分的nginx配置文件
version: '3'
services:
web:
image: nginx:latest
volumes:
- f:/git_project:/usr/share/nginx/html
- f:/docker/php-docker/nginx-conf/conf.d/:/etc/nginx/conf.d/
ports:
- '80:80'
depends_on:
- php-fpm
php-fpm:
image: "scchary/php:1.2"
volumes:
- f:/git_project:/usr/share/nginx/html
nginx配置文件
server {
listen 80;
server_name xxx.net;
root "/usr/share/nginx/html/xxx.net/frontend/web";
location / {
index index.php;
if ( !-e $request_filename )
{
rewrite ^/(.*)$ /index.php?r=$1 last;
}
}
location ~ \.php(.*)$ {
fastcgi_pass php-fpm: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;
}
}
启动
前台启动,可以看到一些信息,便于调试 : docker-compose -f web-compose.yml up
后台启动 : docker-compose -f web-compose.yml up -d