laradock 安装 Laravel 环境

docker 文档
laradock 中文文档

1.根据laradocker文档的介绍,根据不同情况将laradocker 克隆到服务器
一般来说laradocker和项目代码同级,在多个项目的情况下laradocker跟所有代码的上级目录同级。

2.进入laradock文件夹并复制env-example to .env
cp env-example .env
你可以编辑.env文件去选择你想在环境中安装的软件,你始终可以参考docker-compose.yml文件去看如何使用这些变量。
根据主机的操作系统,您可能需要更改给定的值 COMPOSE_FILE的值, 当你在MacOS上运行laradock时要使用的文件分隔符是:, 当你在Windows环境上运行laradock时,必须使用 ;来作为多个文件的分隔符。
(APP_CODE_PATH_HOST:宿主机上的代码目录, APP_CODE_PATH_CONTAINER:docker容器中的代码目录)
(CHANGE_SOURCE:是否使用中国镜像源,UBUNTU_SOURC=aliyun)
(MYSQL_VERSION=latest;MYSQL_DATABASE=default;MYSQL_USER=default;MYSQL_PASSWORD=secret;MYSQL_PORT=3306;MYSQL_ROOT_PASSWORD=root;MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d)
3.运行docker-compose来构建环境
在laradocker目录下面执行docker-compose up -d nginx mysql redis php-worker
注意: 大多数情况下 workspacephp-fpm 会自动运行, 所以不需要再up命令中指定它们, 如果你找不到他们,那么你需要这样指定它们: docker-compose up -d nginx php-fpm mysql workspace
4.进入Workspace容器, 执行比如(Artisan, Composer, PHPUnit, Gulp, …)等命令
docker-compose exec workspace bash
另外, 针对 Windows PowerShell 用户: 执行以下命令以进入任何正在运行的容器:
docker exec -it {workspace-container-id} bash
5.更新您的项目配置以使用数据库主机
项目中的配置文件中的修改:
DB_HOST=mysql;REDIS_HOST=redis

6.配置多个域名,进入laradocker/nginx/sites为访问的不同的域名创建配置文件去指向不同的项目目录
默认情况下laradock包含app.conf.example, laravel.conf.examplesymfony.conf.example 作为工作样本
复制相关配置为*.conf根据需求配置相关配置

7.安装swoole扩展,在laradocker/.env文件中的WORKSPACE_INSTALL_SWOOLE,PHP_FPM_INSTALL_SWOOLE,PHP_WORKER_INSTALL_SWOOLE设置true。在laradocker目录下重新执行,重新构建容器docker-compose build php-fpm workspace php-worker; 再执行docker-compose up -d php-fpm workspace php-worker

8.Laravel队列工作者php-worker
可到laradocker/php-worker/supervisord.d目录下配置相关配置。针对swoole使用,监听端口需要跟宿主机端口映射,可修改laradocker/docker-compose.yml里的php-worker服务配置端口映射

(各个服务的配置文件都在laradocker目录下相对于的服务容器名的目录下)

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
QIN秦同学
laradocker 部署环境,pdo 链接数据库失败。
  • 昨天用laradocker 部署环境,安装thinkcmf,发现 pdo 链接数据库报错。
  • 定位到问题是容器安装的各个服务之间是独立分开的,导致 php 的 pdo连不上mysql。
  • 不太懂怎么处理。大佬又遇到过么?

file

3年前 评论
QIN秦同学 (作者) 3年前
panweiheng (楼主) 3年前

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