Vapor:基于 Docker 的部署

2020 年 12 月 16 日#vapor

AWS Lambda 的一个限制是,部署大小(包括层)不能超过 250 MB。对于具有许多 Composer 依赖项的大型项目来说,这并不理想。此外,许多对 Laravel Vapor 感兴趣的人希望安装未包含在原生 Vapor 运行时中的其他 PHP 扩展。

本月初,AWS 宣布了 Lambda 函数的容器镜像支持。这允许开发人员将 Lambda 函数打包并部署为最大 10GB 的 Docker 容器镜像。

仅仅几周后,我们很高兴地宣布为 Laravel Vapor 引入基于 Docker 的部署支持。要开始使用,请确保您正在运行最新版本的 laravel/vapor-corelaravel/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

作者:Mohamed Said

Laravel 软件工程师。

关注 RSS Feed