在现代化的 Web 应用程序中,Docker 已经成为了不可或缺的基础设施。Docker Compose 是 Docker 的一个子项目,为多容器的 Docker 应用程序提供了方便的管理方式。而 Laravel 是一个流行的 PHP 框架,可以用来开发网站和 Web 应用程序。在这篇文章中,我们将学习如何使用 Docker Compose 来构建 Laravel 应用程序。
准备工作
为了构建 Laravel 应用程序,需要先安装 Docker 和 Docker Compose。在 macOS 和 Windows 上,可以使用官方的 Docker Desktop。对于 Linux 用户,可以从官方网站下载 Docker。
除此之外,需要确保你的本地环境已经安装了 PHP 和 Composer。此外,你还需要确保在本地运行 MySQL 或者其他 Relational 数据库。
创建 Laravel 项目
首先,使用 Composer 创建一个 Laravel 项目:
composer create-project --prefer-dist laravel/laravel my-laravel-app
这条命令将创建一个新的 Laravel 项目,名为 my-laravel-app。
配置环境变量
接下来,我们需要在应用程序中配置一些环境变量。这些变量将被用于 Docker Compose 的配置文件中。在 .env 文件中添加以下内容:
DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=example
这将配置数据库连接的参数。
配置 Docker Compose
在 Laravel 项目的根目录下创建一个名为 docker-compose.yml 的文件。该文件将用于定义我们应用程序的各个服务以及它们之间的依赖关系。
以下是一个 Docker Compose 配置文件的示例:
-- -------------------- ---- ------- -------- ----- --------- ---- ------ -------- - ----------- ----------------- --------------- -------------- -------- -------------- ------------ ------------- -------- - ------------------------------ --------- - ---- ------------ - ------------- ----------- - -- --- ------ --------- --------------- ------------- -------- -------------- ------------ --------------- ------- ----------- ---- --------------- ------- -------------------- ------- -------- - ---------------------------
在这个示例中,我们定义了两个服务:app 和 db。app 服务将运行 Laravel 应用程序,而 db 服务将运行 MySQL 数据库。我们使用了 volumes 将应用程序的代码挂载到 Docker 容器中,这样在容器内对代码的修改会反映到本地代码库中。我们还设置了 env_file 和 environment 变量来传递应用程序的环境变量。最后,我们定义了 depends_on 变量来确保 db 服务在 app 服务之前启动。
创建 Dockerfile
创建 Dockerfile 是为了构建 Laravel 应用程序的 Docker 镜像。在 Laravel 项目的根目录中创建一个名为 docker 的目录,并在其中创建 Dockerfile 文件。以下是一个 Dockerfile 文件的示例:
-- -------------------- ---- ------- ---- --------------------- --- ------- ------ -- - ------- ------- -- ---------- ---------- ----------- --- ----- --- -- - ---------------------- --------- ------ --- -- -- - ---- --- --------------------------------- -- ------------------ -- - --- ------------------ ---------------------------- ------------------- - --- ------- --------- ------- ------------- - ---- --- ----- ---- - ------------- - ------- -------- ------------ --- -------- ------- --------------------- ---------------- - ---- ----------- --------- -- --------- ---- ---- ------------- - --- ---- ----------- --- ----- -- ----------------- ------- --------------- --- ----- -- --- ------- --------------- - ------ ------- ------ --- ------- -------
该 Dockerfile 安装了适用于 Laravel 项目的 PHP 和 Apache2 扩展和库,使用 Composer 安装 Laravel 应用程序所需的依赖,并复制 .env 文件以及应用程序的其余代码。最后,它设置了文件和目录的权限,并启用 Apache2 rewrite 模块。
构建并启动 Docker 镜像
进入 Laravel 项目的根目录并使用以下命令构建并启动 Docker 镜像:
docker-compose up --build
这将构建 Docker 镜像并在容器中启动 Laravel 应用程序和 MySQL 数据库。
结论
在这篇文章中,我们学习了如何使用 Docker Compose 来构建 Laravel 应用程序。我们设置了环境变量、创建了 Docker Compose 和 Dockerfile 配置文件,以及构建和启动了 Docker 镜像。这种方式不仅可以让开发者更快速地搭建开发环境,同时也有助于保持应用程序在不同环境下的稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f02da86fbf960197323e83