docker Laravel

Docker Laravel

概述

在实际工作中,你可能会有这样的尴尬,电脑系统不敢升级,升级后所有环境得重新搭建,浪费不必要的时间。这个项目旨在从0跑起来一个Laravel项目,只需要一个简单的命令,如果你是一个Laravel新手,你甚至都不需要执行composer create-project来创建Laravel,下面的一个命令会为你准备好一切。

// 构建并启动环境,启动后可通过http://${NGINX_HOST}:8888访问,NGINX_HOST在nginx下.env文件中定义
docker-compose up 

效果如下:
访问:http://${NGINX_HOST}:8888访问laravel首页
*注:记得添加host

docker laravel

或者访问:http://127.0.0.1:8888/phpinfo.php查看php信息

docker Laravel

如果不需要创建新的Larave项目,只想要一个能跑起来的环境,你只需要更改根目录下common.env中的PROJECT_CREATE=false,然后把你的项目拷贝src目录中即可。如果你想尽快试试,地址在这里:githubgitee

并且由于Docker的特新,使得更换PHP版本更简单,也可以同时运行多个版本的PHP

启动方式

git clone git@github.com:lqxun/docker-laravel.git
或者
git clone git@gitee.com:orol/docker-laravel.git

cd docker-laravel
docker-compose up

项目配置

1、公共配置

公共配置在根目录下的common.env文件中,里面定义了如下内容
*注:需要创建新项目时会以该配置创建项目目录

# 是否重新创建项目(composer create)
PROJECT_CREATE=true
#项目名称(project下的文件夹名,nginx 的root会指向${PROJECT_NAME}/publicPROJECT_NAME=blog

# 时区
TZ=Asia/Shanghai
2、配置Nginx域名和项目目录

nginx目录中有.env文件

# 端口号
NGINX_PORT=80
# 访问域名(记得修改host)
NGINX_HOST=test.doc

配置文件定义在nginx/templates目录下以*.template结尾的文件中,该文件中可直接读取.env配置的环境变量,该文件最终会被输出到/etc/nginx/conf.d目录下。附上nginx官方镜像文档传送门

3、配置PHP

目录结构如下

├── .env
├── Dockerfile
├── conf.d
│   └── php_dev.ini
├── docker-laravel-entrypoint.sh
└── fpm-conf.d
    └── fpm_dev.conf

php目录预留了.env文件,默认是空的,如有需要可自行定义。conf.d目录下定义了php配置文件php_dev.inifpm-conf.d下定义了fpm配置文件fpm_dev.conf,可根据需求自行修改,修改完后执行docker-compose up重启容器就行。php扩展的安装,请参考官方镜像文档传送门

php的配置文件可以VOLUME挂载进去,也可以在DockerfileCOPY进去,但是有个问题:如果挂载进去,本地的配置会覆盖容器中的配置,可能会删除一些默认配置,好处是,不需要重新构建镜像,只需要重启容器即可。如果COPY进去,不会破坏容器默认的配置,但是每次都需要重新构建镜像,看大家需要自行选择吧。本项目是COPY进去的。挂载的代码也已写好,只需打开docker-compose.yml中的注释,把DockerfileCOPY注释掉即可。

4、Mysql配置

mysqlmy.cnf是挂载到容器中的,,更改配置只需要重启容器即可,连接端口33060,密码在mysql文件夹下的.env中配置。如果出现一下问题

docker Laravel

这是客户端问题,请换个客户端。如果不想换客户端,可按照资料自行修改即可附连接Docker容器中SQLyog连接数据库报错plugin caching_sha2_password

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!