tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表
文档云函数开发指南使用容器镜像

使用容器镜像

PDF
聚焦模式
字号
最后更新时间: 2024-04-22 17:45:15

操作场景

目前云函数容器镜像已开放使用,您可以使用云函数容器镜像进行开发。本文为您介绍如何安装镜像和使用镜像进行开发。

前提条件

已在开发环境安装 Docker

操作步骤

获取镜像

云函数镜像基于 Centos 7.7.1908版本,目前已公开在腾讯云容器服务 公有镜像。您可在公有镜像页面搜索 scf-repo查看镜像信息
1. 执行以下命令拉取镜像。示例如下:
# 拉取 SCF 源镜像
docker pull ccr.ccs.tencentyun.com/scf-repo/scf-runtimes-image:latest
注意:
如果命令提示权限错误无法正常执行,请在命令前加 sudo 再执行。
2. 您可以在 /scf/lang/ 目录下查看当前镜像所包含的 Runtime。 由于云函数源镜像包括所有的 Runtime,单个容器镜像较大。请参考以下表格内容,根据需求自行选择 Runtime 镜像。
Runtime
地址
SCF
ccr.ccs.tencentyun.com/scf-repo/scf-runtimes-image:latest
Go 1.8
ccr.ccs.tencentyun.com/scf-repo/runtime-go1:latest
Python 2.7
ccr.ccs.tencentyun.com/scf-repo/runtime-python2:latest
Python 3.6
ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
PHP 5.6
ccr.ccs.tencentyun.com/scf-repo/runtime-php5:latest
PHP 7.2
ccr.ccs.tencentyun.com/scf-repo/runtime-php7:latest
Java 8
ccr.ccs.tencentyun.com/scf-repo/runtime-java8:latest
Node 6.10
ccr.ccs.tencentyun.com/scf-repo/runtime-node6:latest
Node 8.9
ccr.ccs.tencentyun.com/scf-repo/runtime-node8:latest
Node 10.15
ccr.ccs.tencentyun.com/scf-repo/runtime-node10:latest
Node 12.16
ccr.ccs.tencentyun.com/scf-repo/runtime-node12:latest
3. 本文以 scf:python3 标签为例,执行以下命令为镜像重新贴上标签。示例如下:
docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
# 通过该指令找到 IMAGE ID 并复制
docker images
# docker tag IMAGE_ID REPOSITORY:TAG
docker tag 0729ecc15d37 scf:python3
执行结果如下图所示:
image-20201204112659373


说明:
如果无需为镜像贴标签,则需将示例中的 scf:python3 替换为 ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest

使用镜像进行依赖安装

本文以 Node.js 12 环境安装 NodeJieba 为例,介绍如何使用镜像安装依赖。

获取 Node.js 12 镜像

执行以下命令拉取镜像。示例如下:
docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-node12:latest
# 通过该指令找到 IMAGE ID 并复制
docker images
docker tag d64a665357b6 scf:node12

启动容器并挂载目录

执行以下命令,启动容器并将本地目录挂载到容器内的目录(若目录不存在,将会自动创建该目录),本文以将 /path/to/your_project 目录挂载至容器中的 /tmp/your_project 目录为例。示例如下:
docker run -it -v /path/to/your_project:/tmp/your_project scf:node12 /bin/bash

容器内安装依赖

1. 启动容器后,执行 cd 命令进入容器内目录,在该目录执行 npm 命令安装 NodeJieba。示例如下:
cd /tmp/your_project
npm install nodejieba --save
2. 依赖将安装在本地 /path/to/your_project 目录下。执行 exit 命令可退出容器。示例如下:
# 退出容器
exit
通过上述步骤即可通过容器镜像安装依赖,您可以将代码重新部署到云函数。针对 Node.js 语言,同时支持 在线依赖安装,上传时自动完成依赖的安装。

使用镜像进行开发

本文以 Python 3.6 为例,介绍如何使用容器进行开发测试。

获取 Python 3.6 镜像

执行以下命令拉取镜像。示例如下:
docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
# 通过该指令找到 IMAGE ID 并复制
docker images
docker tag d64a665357b6 scf:python3

启动容器并挂载目录

1. 执行以下命令,启动容器并将本地项目目录挂载到容器内的目录(若目录不存在,将会自动创建该目录)。示例如下:
docker run --name test -it -v /path/to/your_project:/tmp/your_project scf:python3 /bin/bash
2. 执行 docker exec 命令进入容器进行开发。示例如下:
docker ps
# 获得CONTAINER ID
docker exec -it CONTAINER_ID /bin/bash

保存镜像

执行以下命令,可以将修改提交到本地的镜像中,以便后续继续使用。示例如下:
# 获得容器的 ID
docker ps
# 保存镜像至本地
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit db47b8e66e64 scf:myimage


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈