简介

Laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打包好(包括配置)的 Docker Image。Laradock 早期专注为 Laravel 打造 Docker 开发环境,因而最早在 Laravel 社区中出名,后来随着影响力的扩大,逐渐被 PHP 社区接纳和采用,目前支持的 PHP 项目除了 Laravel 之外,还有 Symfony、CodeIgniter、WordPress、Drupal 等等。

Docker 扫盲

在学习和使用 Laradock 之前,我们有必要先学习和了解 Docker,而在使用 Docker 之前,又有必要搞清楚下面两个问题:

Docker 是什么

Docker 基于 Go 语言开发,是一个基于 LXC 技术之上构建的 Container 容器引擎。容器是一种以固定格式打包软件的方式,以便让软件可以在共享的操作系统中运行,不同于虚拟机,容器并不需要捆绑这个操作系统,只需要软件正常工作所必须的库和设置即可,这使得容器更加高效、轻量级、可以自成系统并且不管部署在什么地方都可以保证运行结果一致。

Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。开发者使用 Docker 可以解决当需要和同事共享代码时”只能在我的机器工作”的问题;操作者使用 Docker 可以在关联容器中边运行边管理以便获取更好的计算密度;企业使用 Docker 可以用来构建敏捷的软件分发管道以便可以更快处理新特性。

为什么要使用 Docker

Docker 的出现就是为了解决以下问题:

  • 环境管理复杂: 从各种 OS 到各种中间件再到各种 App,一款产品能够成功发布,作为开发者需要关心的东西太多,且难于管理,这个问题在软件行业中普遍存在并需要直接面对。Docker 可以简化部署多种应用实例工作,比如Web应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个 Image 部署。

  • 云计算时代的到来: AWS 的成功, 引导开发者将应用转移到云上, 解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在。Docker 的出现正好能帮助软件开发者开阔思路,尝试新的软件管理方法来解决这个问题。

  • 虚拟化手段的变化: 云时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需分配的资源需求以及保证可用性和隔离性。然而无论是 KVM 还是 Xen,在 Docker 看来都在浪费资源,因为用户需要的是高效运行环境而非 OS, GuestOS 既浪费资源又难于管理, 更加轻量级的 LXC 更加灵活和快速。

  • LXC的便携性: LXC在 Linux 2.6 的 Kernel 里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可便携性,决定其构建出的环境难于分发和标准化管理。Docker就在这个问题上做出了实质性的创新方法。

Docker 通常用于如下场景:

  • Web 应用的自动化打包和发布;

  • 自动化测试和持续集成、发布;

  • 在服务型环境中部署和调整数据库或其他的后台应用;

  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

本教程不将那么多高大上的东西了,我们专注于通过 Docker 构建一个可移植的本地开发环境。

Docker 安装使用

首先我们需要在系统安装 Docker 的免费社区版,官方提供 Windows、Mac 及 Linux 等版本下载:。下载操作系统对应版本安装后,双击打开 Docker 应用,即可在命令行检查是否安装成功:

WechatIMG1.jpeg

二、配置xdebug配置项

    首先xDebug在工作区和PHP-FPM容器中安装

    打开.env文件配置:

        WORKSPACE_INSTALL_XDEBUG=true

        PHP_FPM_INSTALL_XDEBUG=true

        

        DOCKER_HOST_IP=your local ip address

    

    打开laradock/workspace/xdebug.ini并laradock/php-fpm/xdebug.ini至少启用以下配置

        WechatIMG6.jpeg

    注意:xdebug.remote_port监听的端口与php-fpm的端口一样(在laradock)里面

    

    重建容器 docker-compose up -d  --build workspace php-fpm

    配置vscode:

        打开launch.json配置文件:

        image.png

    效果:

    WechatIMG5.jpeg

    

    参考文档:

    
      

    此时,xdebug就算是配置成功了,有什么错误的地方欢迎指出