You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Google Cloud Function从Ubuntu 22切换至Ubuntu 18?或安装ffmpeg?

第二代Cloud Functions的Ubuntu版本切换与ffmpeg安装方案

能否切换回Ubuntu 18?

第二代Google Cloud Functions的基础镜像与指定的运行时版本绑定:

  • Ubuntu 18对应已停止官方支持的旧运行时(如Node.js 16及更早、Python 3.8及更早),你可以通过在firebase.json或函数配置中指定这些旧运行时版本,来切换到Ubuntu 18镜像。
  • 但强烈不推荐此操作:旧运行时不再接收安全补丁和功能更新,存在明确的安全风险,官方建议始终使用受支持的新版本运行时(对应Ubuntu 22镜像)。

如何在Ubuntu 22环境安装ffmpeg?

第二代函数支持自定义构建流程,以下两种方法可实现部署时自动安装ffmpeg:

方法1:使用自定义Dockerfile(推荐)

  1. 在函数目录下创建Dockerfile,基于对应运行时的官方镜像添加ffmpeg安装步骤,以Node.js 20为例:
    FROM node:20-bullseye
    
    WORKDIR /workspace
    
    # 安装函数依赖
    COPY package*.json ./
    RUN npm install
    
    # 复制函数代码
    COPY . .
    
    # 安装ffmpeg并清理缓存
    RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg \
        && rm -rf /var/lib/apt/lists/*
    
    CMD ["npm", "start"]
    
  2. 在firebase.json中配置使用该Dockerfile:
    {
      "functions": {
        "source": "functions",
        "docker": {
          "file": "Dockerfile"
        }
      }
    }
    
  3. 执行常规部署命令即可:firebase deploy --only functions,部署流程会自动构建包含ffmpeg的镜像。

方法2:通过Cloud Build配置添加构建步骤

若不想使用Dockerfile,可在函数目录下创建cloudbuild.yaml,在构建阶段插入ffmpeg安装命令:

steps:
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
- name: 'ubuntu:22.04'
  args: ['apt-get', 'update', '-y']
- name: 'ubuntu:22.04'
  args: ['apt-get', 'install', '-y', 'ffmpeg']
- name: 'gcr.io/cloud-builders/firebase'
  args: ['deploy', '--only', 'functions']

部署时执行:gcloud builds submit --config cloudbuild.yaml触发构建与部署。

内容的提问来源于stack exchange,提问作者Asher A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:46:08