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 CE curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 安装 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/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 容器环境了。
首先,进入项目根目录,执行以下命令:
docker-compose up -d
该命令将根据配置文件中的描述,构建各个容器镜像,并在后台启动它们。启动完成后,可以使用以下命令查看容器运行状态:
docker-compose ps
该命令将输出如下内容:
Name Command State Ports ------------------------------------------------------------------------------- laravel_mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp laravel_nginx_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp laravel_php_1 docker-php-entrypoint php-fpm Up 9000/tcp
可以看到,三个容器都已经成功启动,并绑定了各自的端口号。
部署 Laravel 应用程序
在启动容器环境后,我们就可以将 Laravel 应用程序部署到 PHP 容器中了。
首先,进入 PHP 容器:
docker-compose exec php bash
该命令将进入 PHP 容器的交互式终端,我们可以在其中执行各种 PHP 和 Composer 命令。
在终端中,进入 Laravel 应用程序的根目录:
cd /app
然后,运行 Composer 安装命令,安装 Laravel 依赖项:
composer install
该命令将自动下载并安装 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