Windows下使用laradock作为开发环境
关于laradock
laradock是laravel官方维护的一个用于php开发docker集成环境 预先打包的Docker镜像,所有配置官方基本提供了。
Laradock是在laravel社区众所周知的,因为这个项目最开始只关注在Docker上运行的laravel项目。后来,由于PHP社区的大量使用,它开始支持比如Symfony、CodeIgniter、WordPress、Drupal等其他的PHP项目。
个人用例
windows下它依然是我日常开发的主要环境,对于刚开始学习和了解docker都有比较好的帮助,我也是去年开始学习并使用docker。并在实际的业务场景中基于laradock给客户部署过一套php相关的项目,也基于客户内网部署过一套docker lnmp环境 ,使用和了解它,使我大大缩减了部署相关环境所耗费的时间。
开始安装docker
- 官网下载地址
安装完成并开启虚拟化
启动异常问题
- 关闭USE WSL 我们使用git工具作为命令行操作面板
- 登录docker账号 这个在官网注册一个
- 设置一个镜像源 有服务器的同学可以在自己服务器平台创建一个或者 传送门
开始构建镜像
- 我们在E盘或者D盘创建一个WWW目录用于存放我们的项目
- laradock 中文文档
- 我拉取的gitee地址 建议使用我这个地址 速度快的起飞(基本这个配置已经没坑了)。
cd www
git clone https://gitee.com/pltrue/laradock
cd laradock
cp env-example .env
vim .env
//修改文件mysql版本
MYSQL_VERSION=5.7
//如果需要开启swoole
WORKSPACE_INSTALL_SWOOLE=true
PHP_FPM_INSTALL_SWOOLE=true
PHP_WORKER_INSTALL_SWOOLE=true
WORKSPACE_INSTALL_SWOOLE=true
//开始拉取需要的镜像 完成之后继续下一步
docker-compose build nginx php-fpm redis mysql
//启动容器
docker-compose up -d nginx php-fpm redis mysql
//进入某个容器
winpty docker-compose exec redis bash //windows git下 记得带上命令 winpty
//进入workspace容器
winpty docker-compose exec workspace bash
//www 映射的是本地 laradock 同级目录 所有的项目都在/var/www 目录下面 其他命令可以查看官方文档
配置项目 nginx
//配置好了之后,重启nginx
winpty docker-compose exec nginx bash
nginx -s reload
- 在laradock/nginx/sites目录下配置nginx配置文件 php框架的模板都有
注意
- 容器之间通信不能通过127.0.0.1 而是通过容器名:例如:redis,mysql
- 如果需要配置额外的端口与容器通信 在docker-compose.yml、和env中配置新端口 然后重新重建容器(如下图)
- 之后所有操作都一样。其他具体可以查看中文文档。如果有问题,可以在本文下面提出,我会即时答复。
本作品采用《CC 协议》,转载必须注明作者和本文链接
我按您的步骤创建docker环境,提示
执行成功了,执行了很多次 :joy:
这个命令写错了
@风吹过有夏天的味道 大意了 已修正 :cry:
@风吹过有夏天的味道 env : gitee.com/pltrue/laradock/blob/mas...
docker-compose.yml:
gitee.com/pltrue/laradock/blob/mas...
覆盖本地.env、docker-compose.yml 将镜像清掉 docker-compose build –no-cache nginx php-fpm redis mysql 重新构建 我本地跑了一遍没出现这种情况
大佬,问个想很久的问题,装过docker,配置laradock之后,本地是不是就不需要再安装集成环境了
写代码的时候是直接打开宿主机的项目文件修改还是打开workspace里面的项目文件
我现在是直接修改宿主机的文件的,用的vscode,但是配置文件里的东西都是用的以前laragon里面集成的
如果我本地以前没有装过laragon之类的集成环境,这些要怎么配置啊
@lun1bz 这个看你自己吧 我自己本地是装的php8+swoole(我自己是mac本 公司是windows) docker里php版本则和公司项目版本一致 本地主要是捣鼓一些自己的东西 直接cli启动 然后连的docker的reids和mysql。把laradock当成一个工具箱 快捷开启一些工具例如 rmq、kafak、 es不用在本地捣鼓环境,所以我本地只保留一个最新版php环境