使用 Docker Compose 构建 Laravel 开发环境

Laravel 是一个流行的 PHP Web 开发框架,它提供了许多便利的功能和工具,使得开发者可以更快速、更高效地开发 Web 应用程序。但是,配置 Laravel 开发环境可能会比较繁琐,因为需要安装和配置 PHP、MySQL、Apache/Nginx 等多个组件。在这种情况下,使用 Docker Compose 可以方便地构建 Laravel 开发环境,本文将介绍如何使用 Docker Compose 构建 Laravel 开发环境。

Docker Compose 简介

Docker Compose 是 Docker 官方提供的一个工具,用于管理多个 Docker 容器的应用程序。它允许您使用 YAML 文件定义应用程序的服务、网络和卷,并使用单个命令启动、停止和重建所有服务。使用 Docker Compose,您可以轻松地创建和管理多个 Docker 容器,从而构建复杂的应用程序。

在使用 Docker Compose 构建 Laravel 开发环境之前,需要先安装 Docker 和 Docker Compose。这里不再赘述,可参考 Docker 和 Docker Compose 官方文档进行安装。

创建 Docker Compose 文件

在开始之前,需要先创建一个 Docker Compose 文件。这个文件包含了 Laravel 开发环境所需的所有服务,如 PHP、MySQL、Nginx 等。在项目根目录下创建一个名为 docker-compose.yml 的文件,内容如下:

这个文件定义了三个服务:appwebserverdb。其中:

  • app:这个服务用于运行 Laravel 应用程序,它基于 PHP 镜像构建,使用了一个自定义的 Dockerfile,其中包含了 Laravel 所需的 PHP 扩展和 Composer。这个服务将 Laravel 代码挂载到容器内的 /var/www/html 目录,并将 php.ini 文件挂载到容器内的 /usr/local/etc/php/php.ini 目录。此外,还定义了一个名为 laravel 的网络,用于连接所有服务。
  • webserver:这个服务用于运行 Nginx,它基于 Nginx 镜像构建,并将 Laravel 应用程序的 Nginx 配置文件挂载到容器内的 /etc/nginx/conf.d/default.conf 目录。此外,还将 80 端口映射到主机的 80 端口,以便可以通过浏览器访问 Laravel 应用程序。
  • db:这个服务用于运行 MySQL 数据库,它基于 MySQL 镜像构建,将 3306 端口映射到主机的 3306 端口,并将 MySQL 数据库文件挂载到容器内的 /var/lib/mysql 目录。

创建 Dockerfile 文件

在上面的 Docker Compose 文件中,app 服务使用了一个自定义的 Dockerfile,用于构建包含 Laravel 所需的 PHP 扩展和 Composer 的 PHP 镜像。在项目根目录下创建一个名为 docker/app/Dockerfile 的文件,内容如下:

这个文件基于 php:7.4-fpm 镜像构建,安装了 Laravel 所需的 PHP 扩展和 Composer。其中:

  • libzip-devzipunzip:用于处理 ZIP 文件。
  • git:用于从 Git 仓库中获取代码。
  • curl:用于从网络上下载文件。
  • libpng-devlibonig-devlibxml2-dev:用于支持 PHP 扩展。

启动 Docker Compose

在完成上述步骤后,可以使用以下命令启动 Docker Compose:

这个命令将会启动 Docker Compose,并在后台运行。在启动后,可以使用以下命令查看 Docker Compose 的状态:

这个命令将会输出 Docker Compose 中所有服务的状态。

运行 Laravel 应用程序

在启动 Docker Compose 后,可以使用以下命令进入 app 服务的容器:

这个命令将会进入 app 服务的容器,并打开一个 Bash 终端。在这个终端中,可以使用以下命令运行 Laravel 应用程序:

这个命令将会在 app 服务的容器中启动 Laravel 应用程序,并将其绑定到 8000 端口。此时,可以通过浏览器访问 http://localhost:8000 来查看 Laravel 应用程序。

总结

使用 Docker Compose 构建 Laravel 开发环境可以方便地管理多个 Docker 容器,从而构建复杂的应用程序。在本文中,我们介绍了如何使用 Docker Compose 构建 Laravel 开发环境,并提供了示例代码。希望这篇文章能够帮助您更快速地构建 Laravel 开发环境。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656eed29d2f5e1655d73d212


纠错
反馈