必要条件

安装

选择最适合你需要的设置

  • A)单个项目的设置
    • A.1)已经有一个PHP项目
    • A.2)还没有PHP项目
  • B)多个项目的设置

A)单个项目的设置

(如果你想为每个项目提供一个独立的Docker环境,请遵循以下步骤)

A.1) 已经有一个PHP项目:

1 - 在你的项目根目录下克隆laradock:

  1. git submodule add https://github.com/Laradock/laradock.git

注意:如果你的项目还没有使用Git,你可以使用 git clone 而不是 git submodule
为了在你的项目之间跟踪你的Laradock的变化,并保持Laradock的更新,请检查这些文档

2 - 确保你的文件夹结构是这样的:

  1. project-a
  2. * laradock-a
  3. * project-b
  4. * laradock-b

(如果你想在每个项目中运行laradock,那么在每个项目中将laradock文件夹重命名为唯一名称是很重要的)。

3 - 跳转到用法部分。
_

A.2)还没有PHP项目:

1 - 将这个版本库复制到你机器上的任何地方:

  1. git clone https://github.com/laradock/laradock.git

你的文件夹结构应该是这样的:

  1. * laradock
  2. * project-z

2 - 编辑你的web服务器站点配置.
我们现在需要执行用法一节的步骤1来实现这一点。

  1. cp env-example .env

在顶部,将 APP_CODE_PATH_HOST 变量更改为项目路径。

  1. APP_CODE_PATH_HOST=../project-z/

确保将 project-z 替换为你自己的项目文件夹名称.

3 - 跳转到用法部分。

B) 为多个项目设置:

(如果你想为你所有的项目使用一个Docker环境,请遵循以下步骤)

1 - 将这个版本库复制到你机器上的任何地方(类似于上面的步骤A.2.):

  1. git clone https://github.com/laradock/laradock.git

你的文件夹结构应该是这样的:

  1. * laradock
  2. * project-1
  3. * project-2

2 - 当访问不同的域时跳转到你的web服务器并创建配置文件指向不同的项目目录:
对于Nginx,访问 nginx/sites ,对于Apache2,访问 apache2 /sites

Laradock 默认包含一些供你复制的范例文件: app.conf.example , laravel.conf.examplesymfony.conf.example

3 - 修改默认文件名 *.conf :
你可以按照自己的喜好重命名配置文件、项目文件夹和域,只要确保配置文件中的 root 文件指向正确的项目文件夹名称即可。

4 - 添加域名到hosts文件

  1. 127.0.0.1 project-1.test
  2. 127.0.0.1 project-2.test
  3. ...

如果你使用Chrome 63或以上版本进行开发,不要使用 .dev为什么?。应该使用 .localhost.invalid.test.example

5 - 跳转到用法部分。

用法

开工前必读:
如果你正在使用Docker Toolbox (VM),请执行以下操作之一:

我们建议使用比1.13更新的Docker版本。

警告:如果你使用的是Laradock的旧版本,强烈建议你重新构建你需要使用的容器,看看你如何重新构建一个容器,以防止尽可能多的错误。

1 - 进入 laradock 文件夹 ,将 env-example 复制到 .env

  1. 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 脚本:

  1. 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,…)

  1. docker-compose exec workspace bash

或者,对于Windows PowerShell用户:执行以下命令进入任何正在运行的容器:
_

  1. docker exec -it {workspace-container-id} bash

注意: 你可以添加 --user=laradock 来将文件创建为你的主机用户。例子:

  1. docker-compose exec --user=laradock workspace bash

可以在.env文件中更改 PUID(User id)和 PGID(groupid)变量。
_
4 - 更新项目配置以使用数据库主机
打开你的PHP项目的 .env 文件或任何你正在读取的配置文件,并设置数据库主机 DB_HOSTmysql :

  1. DB_HOST=mysql

你需要使用Laradock默认的DB凭证,可以在.env文件中找到(ex: MYSQL_USER=)。或者你可以更改它们并重新构建容器。

如果你想将Laravel安装为PHP项目,请参见如何在Docker容器中安装Laravel

5 - 打开你的浏览器,访问你的本地主机地址。

确保您的添加使用了运行中的服务器提供的正确端口号。

http://localhost

如果你遵循了多个项目设置,你可以访问http://project-1.test/http://project-2.test/