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
或者访问:http://127.0.0.1:8888/phpinfo.php
查看php
信息
如果不需要创建新的Larave项目,只想要一个能跑起来的环境,你只需要更改根目录下common.env
中的PROJECT_CREATE=false
,然后把你的项目拷贝src
目录中即可。如果你想尽快试试,地址在这里:github、gitee
并且由于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}/public)
PROJECT_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.ini
,fpm-conf.d
下定义了fpm
配置文件fpm_dev.conf
,可根据需求自行修改,修改完后执行docker-compose up
重启容器就行。php
扩展的安装,请参考官方镜像文档传送门
php
的配置文件可以VOLUME
挂载进去,也可以在Dockerfile
中COPY
进去,但是有个问题:如果挂载进去,本地的配置会覆盖容器中的配置,可能会删除一些默认配置,好处是,不需要重新构建镜像,只需要重启容器即可。如果COPY
进去,不会破坏容器默认的配置,但是每次都需要重新构建镜像,看大家需要自行选择吧。本项目是COPY
进去的。挂载的代码也已写好,只需打开docker-compose.yml
中的注释,把Dockerfile
中COPY
注释掉即可。
4、Mysql配置
mysql
的my.cnf
是挂载到容器中的,,更改配置只需要重启容器即可,连接端口33060
,密码在mysql
文件夹下的.env
中配置。如果出现一下问题
这是客户端问题,请换个客户端。如果不想换客户端,可按照资料自行修改即可附连接Docker容器中SQLyog连接数据库报错plugin caching_sha2_password
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: