Reference: leanengine.yaml
leanengine.yaml
是一个用来自定义云引擎线上运行环境的配置文件,需要放置在项目的根目录,使用 YAML 语法。
runtime
覆盖运行环境
覆盖自动识别的运行环境,可选的值:
cpp
dotnet
go
java
nodejs
php
python
static
(Web 前端)
run
覆盖运行命令
run: $(npm bin)/serve -c static.json -l ${LEANCLOUD_APP_PORT}
支持 Shell 语法(如引用环境变量等)。
install
覆盖依赖安装命令
覆盖默认的依赖安装命令(如 npm install
),或在安装依赖前后运行自定义命令,支持用数组来表示多条命令,支持 Shell 语法、引用环境变量。
多数运行环境有默认的依赖安装命令,可以用 use: default
来引用默认的命令:
install:
- use: default
- npm run install-additional
依赖安装步骤默认只会将依赖清单(如 package.json
等文件)加入构建目录,如需其他文件可以用 require
来引入:
install:
- require:
- frontend/package.json
- frontend/package-lock.json
- cd frontend && npm ci
build
覆盖构建命令
build: NODE_ENV=production $(npm bin)/webpack
像 install
一样用 use: default
来引用默认命令,支持用数组来表示多条命令,支持 Shell 语法、引用环境变量。
在构建阶段全部代码文件都已经被加入了构建目录,可以使用所有的文件。
systemDependencies
系统级依赖
在部署时安装额外的系统级依赖:
systemDependencies:
- imagemagick
ffmpeg
一个音视频处理工具库。imagemagick
一个图片处理工具库。fonts-wqy
文泉驿点阵宋体、文泉驿微米黑字体,通常和chrome-headless
配合来显示中文。fonts-noto
思源黑体字体(体积较大),通常和chrome-headless
配合来显示中文。(该项目已停止维护)。phantomjs
一个无 UI 的 WebKit 浏览器chrome-headless
一个无 UI 的 Chrome 浏览器(体积很大,会显著增加部署耗时,运行时也会消耗大量 CPU 和内存;如果使用puppeteer
的话,需要给puppeteer.launch
传递这些参数:{executablePath: '/usr/bin/google-chrome', args: ['--no-sandbox', '--disable-setuid-sandbox']}
)。node-canvas
安装 node-canvas 所需要的系统级依赖(你仍需要自行安装node-canvas
)。python-talib
TA-Lib 所需的系统依赖(你仍需要自行安装TA-Lib
)。
注意添加系统依赖将会显著增加部署耗时,因此请不要添加未用到的依赖。
buildRoot
构建根目录
指定代码包或仓库中的一个子目录进行构建,相当于只上传了这一个子目录的代码。
exposeEnvironmentsOnBuild
在构建阶段使用环境变量
默认情况下,应用在运行阶段才能够读取到内置环境变量和自定义环境变量,设置该选项可以在安装依赖或编译阶段读取到这些环境变量。
exposeEnvironmentsOnBuild: true
云引擎运行环境默认提供的环境变量(以及 Node.js 环境变量 NODE_ENV)无法被自定义环境变量覆盖。
startupTimeout
启动超时
startupTimeout: 60
配置程序启动的超时时间,可设置 15 - 120 的值(秒)
functionsMode
云函数功能开关
控制项目是否使用云函数(Hook)特性。
functionsMode: strict
设置为 strict
表示需要使用云函数特性,如获取云函数信息失败则中断部署;设置为 disabled
表示不开启云函数相关功能。
Node.js installDevDependencies
安装开发依赖
installDevDependencies
安装开发依赖已废弃,请使用 package-lock.json
。
installDevDependencies: true
安装 package.json
中 devDependencies
部分的依赖。