必要条件
安装
选择最适合你需要的设置
- A)单个项目的设置
- A.1)已经有一个PHP项目
- A.2)还没有PHP项目
- B)多个项目的设置
A)单个项目的设置
(如果你想为每个项目提供一个独立的Docker环境,请遵循以下步骤)
A.1) 已经有一个PHP项目:
1 - 在你的项目根目录下克隆laradock:
git submodule add https://github.com/Laradock/laradock.git
注意:如果你的项目还没有使用Git,你可以使用 git clone
而不是 git submodule
。
为了在你的项目之间跟踪你的Laradock的变化,并保持Laradock的更新,请检查这些文档
2 - 确保你的文件夹结构是这样的:
project-a
* laradock-a
* project-b
* laradock-b
(如果你想在每个项目中运行laradock,那么在每个项目中将laradock文件夹重命名为唯一名称是很重要的)。
3 - 跳转到用法部分。
_
A.2)还没有PHP项目:
1 - 将这个版本库复制到你机器上的任何地方:
git clone https://github.com/laradock/laradock.git
你的文件夹结构应该是这样的:
* laradock
* project-z
2 - 编辑你的web服务器站点配置.
我们现在需要执行用法一节的步骤1来实现这一点。
cp env-example .env
在顶部,将 APP_CODE_PATH_HOST
变量更改为项目路径。
APP_CODE_PATH_HOST=../project-z/
确保将 project-z
替换为你自己的项目文件夹名称.
3 - 跳转到用法部分。
B) 为多个项目设置:
(如果你想为你所有的项目使用一个Docker环境,请遵循以下步骤)
1 - 将这个版本库复制到你机器上的任何地方(类似于上面的步骤A.2.):
git clone https://github.com/laradock/laradock.git
你的文件夹结构应该是这样的:
* laradock
* project-1
* project-2
2 - 当访问不同的域时跳转到你的web服务器并创建配置文件指向不同的项目目录:
对于Nginx,访问 nginx/sites
,对于Apache2,访问 apache2 /sites
。
Laradock 默认包含一些供你复制的范例文件: app.conf.example
, laravel.conf.example
和 symfony.conf.example
3 - 修改默认文件名 *.conf
:
你可以按照自己的喜好重命名配置文件、项目文件夹和域,只要确保配置文件中的 root
文件指向正确的项目文件夹名称即可。
4 - 添加域名到hosts文件
127.0.0.1 project-1.test
127.0.0.1 project-2.test
...
如果你使用Chrome 63或以上版本进行开发,不要使用 .dev
。为什么?。应该使用 .localhost
、 .invalid
、 .test
或 .example
。
5 - 跳转到用法部分。
用法
开工前必读:
如果你正在使用Docker Toolbox (VM),请执行以下操作之一:
- 升级到Docker Native for Mac/Windows(推荐)。查阅升级Laradock
- 使用Laradock v3.*。访问Laradock-ToolBox分支。(已过时)
我们建议使用比1.13更新的Docker版本。
警告:如果你使用的是Laradock的旧版本,强烈建议你重新构建你需要使用的容器,看看你如何重新构建一个容器,以防止尽可能多的错误。
1 - 进入 laradock 文件夹 ,将 env-example
复制到 .env
cp env-example .env
你可以编辑 .env
文件来选择你想要在环境中安装的软件。你始终可以引用 docker-compose.yml
文件,以查看如何使用这些变量。
根据主机的操作系统,你可能需要更改 COMPOSE_FILE
的值。当你在Mac OS上运行Laradock时,正确的文件分隔符是 :
。在Windows环境下运行Laradock时,多个文件必须用 ;
分隔。
默认情况下,容器的创建将以当前目录名作为后缀(例如 laradock_workspace_1
)。如果你在多个项目中使用laradock,这可能会导致容器卷内的数据混合。在这种情况下,要么阅读关于多个项目的指南,要么将变量 COMPOSE_PROJECT_NAME
更改为唯一的东西,比如您的项目名。
2 - 构建环境并使用 docker-compose
来运行
在这个例子中,我们将看到如何运行NGINX (web服务器)和MySQL(数据库引擎)来托管PHP Web 脚本:
docker-compose up -d nginx mysql
注意:所有的web服务器容器 nginx
, apache
..等等依赖于php-fpm
,这意味着如果你运行它们中的任何一个,它们都会自动为你启动php-fpm
容器,所以不需要在 up
命令中显式地指定它。如果你必须这样做,你可能需要这样运行它们: docker-compose up -d nginx php-fpm mysql
。
你可以从这个列表中选择自己的容器组合。
(请注意,有时我们会忘记更新文档,所以请检查 docker-compose.yml
文件,以查看所有可用容器的更新列表)。
_
3 - 进入工作区容器,执行命令如(Artisan, Composer, PHPUnit, Gulp,…)
docker-compose exec workspace bash
或者,对于Windows PowerShell用户:执行以下命令进入任何正在运行的容器:
_
docker exec -it {workspace-container-id} bash
注意: 你可以添加 --user=laradock
来将文件创建为你的主机用户。例子:
docker-compose exec --user=laradock workspace bash
可以在.env文件中更改 PUID(User id)和 PGID(groupid)变量。
_
4 - 更新项目配置以使用数据库主机
打开你的PHP项目的 .env
文件或任何你正在读取的配置文件,并设置数据库主机 DB_HOST
为 mysql
:
DB_HOST=mysql
你需要使用Laradock默认的DB凭证,可以在.env文件中找到(ex: MYSQL_USER=)。或者你可以更改它们并重新构建容器。
如果你想将Laravel安装为PHP项目,请参见如何在Docker容器中安装Laravel。
5 - 打开你的浏览器,访问你的本地主机地址。
确保您的添加使用了运行中的服务器提供的正确端口号。
如果你遵循了多个项目设置,你可以访问http://project-1.test/和http://project-2.test/。