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
的文件,内容如下:
-- -------------------- ---- ------- -------- --- --------- ---- ------ -------- - ----------- ----------------------- --------------- ----------- -------- -------------- ---- ---- ------------ ------------- --- ------------- --- -------- - --------------- - ----------------------------------------------- --------- - ------- ---------- ------ ------------ --------------- ----------------- -------- -------------- ---- ---- ------ - ------- -------- - --------------- - ------------------------------------------------------------ ----------- - --- --------- - ------- --- ------ --------- --------------- ---------- -------- -------------- ---- ---- ------------ --------------- ------- -------------------- ---- ------------- --- ------------- ----- ------ - ----------- -------- - -------------------------- --------- - ------- --------- -------- ------- ------
这个文件定义了三个服务:app
、webserver
和 db
。其中:
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-dev
、zip
和unzip
:用于处理 ZIP 文件。git
:用于从 Git 仓库中获取代码。curl
:用于从网络上下载文件。libpng-dev
、libonig-dev
和libxml2-dev
:用于支持 PHP 扩展。
启动 Docker Compose
在完成上述步骤后,可以使用以下命令启动 Docker Compose:
docker-compose up -d
这个命令将会启动 Docker Compose,并在后台运行。在启动后,可以使用以下命令查看 Docker Compose 的状态:
docker-compose ps
这个命令将会输出 Docker Compose 中所有服务的状态。
运行 Laravel 应用程序
在启动 Docker Compose 后,可以使用以下命令进入 app
服务的容器:
docker-compose exec app bash
这个命令将会进入 app
服务的容器,并打开一个 Bash 终端。在这个终端中,可以使用以下命令运行 Laravel 应用程序:
php artisan serve --host=0.0.0.0 --port=8000
这个命令将会在 app
服务的容器中启动 Laravel 应用程序,并将其绑定到 8000
端口。此时,可以通过浏览器访问 http://localhost:8000
来查看 Laravel 应用程序。
总结
使用 Docker Compose 构建 Laravel 开发环境可以方便地管理多个 Docker 容器,从而构建复杂的应用程序。在本文中,我们介绍了如何使用 Docker Compose 构建 Laravel 开发环境,并提供了示例代码。希望这篇文章能够帮助您更快速地构建 Laravel 开发环境。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/656eed29d2f5e1655d73d212