AWS Lambda 的一个限制是,部署大小(包括层)不能超过 250 MB。对于具有许多 Composer 依赖项的大型项目来说,这并不理想。此外,许多对 Laravel Vapor 感兴趣的人希望安装未包含在原生 Vapor 运行时中的其他 PHP 扩展。
本月初,AWS 宣布了 Lambda 函数的容器镜像支持。这允许开发人员将 Lambda 函数打包并部署为最大 10GB 的 Docker 容器镜像。
仅仅几周后,我们很高兴地宣布为 Laravel Vapor 引入基于 Docker 的部署支持。要开始使用,请确保您正在运行最新版本的 laravel/vapor-core
和 laravel/vapor-cli
,然后创建一个新的 Vapor 环境
vapor env my-environment --docker
--docker
选项将指示 Vapor 创建一个 my-environment.Dockerfile
文件,并在该文件中将 runtime
配置选项设置为 docker
。默认情况下,my-environment.Dockerfile
将如下所示
FROM laravelphp/vapor:php74
COPY . /var/task
如果您有一个现有的环境,您希望将其切换到基于 Docker 的部署,您需要更新 vapor.yml
文件中的 runtime
配置,并将其设置为 docker
。之后,您需要为该环境创建一个 .Dockerfile
。
Vapor 提供了几个基于 Alpine Linux 的基础镜像 - 这些镜像默认安装了许多常见的库和 PHP 扩展。
您可以通过更新环境的相应 Dockerfile 来安装其他 PHP 扩展或库。例如,以下是如何安装 FFmpeg 库和 XML-RPC PHP 扩展
FROM laravelphp/vapor:php74
RUN apk --update add ffmpeg
RUN docker-php-ext-install xmlrpc
COPY . /var/task
准备部署后,运行 vapor deploy my-environment
命令,Vapor 将构建并发布 Docker 镜像。此外,Vapor 将配置底层的 AWS Lambda 函数以使用该镜像作为其运行时。当然,您应该确保已在本地机器上安装了 Docker。
随着基于 Docker 的部署的引入,您现在可以将更大的应用程序部署到 Laravel Vapor,并轻松安装项目可能需要的任何额外库或 PHP 扩展。
如果您还没有尝试过 Laravel Vapor,现在是开始使用无限扩展部署您的应用程序的好时机!您今天可以在以下地址创建您的帐户:https://vapor.laravel.net.cn