Docker 容器快速搭建 Laravel 开发环境

阅读时长 10 分钟读完

Laravel 是当下流行的 PHP Web 应用程序开发框架,它提供了许多优秀的特性和工具,可以大大提高开发效率和代码质量。而 Docker 则是目前最流行的容器化技术,可以将应用程序及其依赖项打包成一个可移植的容器镜像,从而实现跨平台运行和快速部署等好处。

在本文中,我们将演示如何使用 Docker 容器快速搭建 Laravel 开发环境,以便于进行应用程序开发和测试。具体而言,我们将以 Ubuntu 18.04 系统为基础,使用 Docker Compose 编排工具,构建一个包含 Nginx、PHP 7.4、MySQL 5.7、Composer、Node.js 等组件的 Docker 容器环境,其中 Laravel 应用程序将部署在 PHP 容器中,通过 Nginx 反向代理实现 Web 访问。

前置条件

在开始搭建 Laravel 开发环境之前,需要先满足以下前置条件:

  • 安装 Docker CE,建议使用最新版本。
  • 安装 Docker Compose,建议使用最新版本。
  • 了解 Laravel 开发框架的基本概念和用法,有一定的 PHP 开发经验。

安装 Docker CE 和 Docker Compose

Docker CE 和 Docker Compose 的安装过程比较简单,可以参考官方的安装文档进行操作。

对于 Ubuntu 18.04 系统,可以使用以下命令安装 Docker CE 和 Docker Compose:

编写 Docker Compose 配置文件

在安装好 Docker CE 和 Docker Compose 之后,我们需要编写 Docker Compose 配置文件,以描述需要使用的容器环境和服务。

在项目根目录下创建一个名为 docker-compose.yml 的文件,内容如下:

-- -------------------- ---- -------
-------- ---

---------
  - ----- ----- --- ---------
  ------
    ------ -----------------
    ------
      - -------
    --------
      - -----------------------------------------
    -----------
      - ---

  - --- ------- ------- ----- -------- --
  ----
    ------
      -------- -
      ----------- -----------------
    --------
      - ------
    ------------
      - -------------
      - --------------
      - ------------------------
      - -------------
      - ------------
      - -------------------
      - ----------------
      - ----------------
    -----------
      - -----

  - ----- ------- ------- ----------
  ------
    ------ ---------
    -------- ------
    ------------
      --------------- -------
      -------------------- ----
      --------------- ----
      ----------- ----
    --------
      - ---------------------------

具体而言,我们定义了三个服务:

  • nginx:Nginx Web 服务器,监听端口 80,反向代理到 PHP 服务上。
  • php:PHP 7.4 应用程序运行环境和开发工具,包括 Laravel 依赖项和 Composer 工具。
  • mysql:MySQL 5.7 数据库服务,存储 Laravel 应用程序的数据和状态。

其中,php 服务基于当前目录下的 docker/Dockerfile 文件构建,该文件用于自定义 PHP 容器镜像的构建过程,如下所示:

-- -------------------- ---- -------
---- -----------

--- ------- ------ -
    -- ------- ------- -- -
        ---------- -
        ---------- -
        ---------- -
        ---------- -
        ----------- -
        ---------------- -
        --- -
        ---- -
        ---------- -
        ----------- -
        --- -
        ----- -
        ------ -
        ---

--- ------------------------ -- --------------------------------- -----------------------------
--- ---------------------- -- --- ---- --------- ------

--- --- -- ------------------------------------------ -----------------------
--- --- ------------------ ---------------------- -------------------
--- -- ------------------

------- ----

该文件继承了官方 PHP 7.4-fpm 镜像,并添加了一些必要的依赖项和工具,如 libzip、zlib、libicu、libpng、libjpeg、libfreetype、git、curl 等。同时,还安装了 Composer 工具,并将工作目录设置为 /app

对于 nginx 服务,我们通过挂载 ./config/nginx.conf 文件实现了自定义配置,该文件的内容如下:

-- -------------------- ---- -------
---------------- --

------ - ------------------ ----- -

---- -
    ------ -
        ------ ---
        ----- --------- -----------
        ---- ------------

        -------- - -
            --------- ---- ----- -------------------------
        -

        -------- - ------ -
            --------- ---- ---------- -----
            ------------ ---------
            ------------- ----------
            ------------- --------------- -----------------------------------
            ------- ---------------
        -
    -
-

该文件定义了一个 Nginx 服务器,监听端口 80,将请求反向代理到 php 服务的 9000 端口上。同时,还将 Laravel 应用程序的根目录设置为 /app/public,并启用了 PHP FastCGI 模式处理 PHP 文件。这样,所有的 Web 请求都将通过 Nginx 服务代理到 Laravel 应用程序中,并由 PHP 服务处理。

对于 mysql 服务,我们指定了 MySQL 5.7 镜像,并设置了必要的环境变量和挂载点。这样,MySQL 数据库可以在容器中运行,并将数据存储到本地的 ./data/mysql 目录中。

构建 Docker 容器环境

在编写完 Docker Compose 配置文件之后,我们就可以使用 docker-compose 工具构建和启动 Docker 容器环境了。

首先,进入项目根目录,执行以下命令:

该命令将根据配置文件中的描述,构建各个容器镜像,并在后台启动它们。启动完成后,可以使用以下命令查看容器运行状态:

该命令将输出如下内容:

可以看到,三个容器都已经成功启动,并绑定了各自的端口号。

部署 Laravel 应用程序

在启动容器环境后,我们就可以将 Laravel 应用程序部署到 PHP 容器中了。

首先,进入 PHP 容器:

该命令将进入 PHP 容器的交互式终端,我们可以在其中执行各种 PHP 和 Composer 命令。

在终端中,进入 Laravel 应用程序的根目录:

然后,运行 Composer 安装命令,安装 Laravel 依赖项:

该命令将自动下载并安装 Laravel 依赖项,如果执行成功,将输出如下信息:

-- -------------------- ---- -------
---------- --------- -------- -----
- -------------------------------------------------------
- ---- ------- ---------------- ------
---------- -------- ------------------------------
---------- -------- ---------------
---------- -------- --------------
---------- -------- -------------
---------- -------- --------------------
------- -------- --------- -------------

这样,我们就完成了 Laravel 应用程序和 Docker 容器环境的部署和配置。现在,只需要访问 http://localhost 即可通过 Nginx 反向代理请求到 Laravel 应用程序中,并正常运行。

总结

本文演示了如何使用 Docker 容器快速搭建 Laravel 开发环境,涉及了 Docker CE、Docker Compose、Nginx、PHP 7.4、MySQL 5.7、Composer 和 Node.js 等技术和工具。通过 Docker 容器化技术,可以轻松构建、部署和运行 Laravel 应用程序,大大提高开发效率和代码质量。同时,还可以避免因系统环境差异带来的不可预知的问题,提高应用程序的可移植性和跨平台性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ec2c37f6b2d6eab3671fb7

纠错
反馈