云函数 使用容器镜像 - 开发指南
VIEW CONTENTS
摘要: 操作场景目前云函数容器镜像已开放使用,您可以使用云函数容器镜像进行开发。本文为您介绍如何安装镜像和使用镜像进行开发。前提条件已在开发环境安装Docker。操作步骤获取镜像云函数镜像基于Centos7. ...
点击领取2000元阿里云代金券,付款抵现金用,云服务器69元/年限时抢>>>    点击咨询成为阿里云VIP客户享永久折扣>>>
点击领取2860元腾讯云代金券,付款抵现金用云服务器88元/年限时抢>>>    点击成为腾讯云VIP客户享永久折扣优惠>>>
点击进入华为云最新优惠活动现场>>>    点击成为华为云VIP客户享永久折扣优惠>>>

操作场景

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

前提条件

已在开发环境安装 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

路过

雷人

握手

鲜花

鸡蛋

相关阅读

2021-10-13 21:02| 发布者: xtyly| 查看: 61| 评论: 0



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )