请问下 apt 安装的东西 怎么放到层?[阿里云函数计算]

请问下 apt 安装的东西 怎么放到层?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 阿里云函数计算层(Layer)是一种可以在多个函数之间共享的代码、库、依赖等资源,因此您可以选择将需要安装的apt软件包打包为一个层,然后在多个函数中引用该层。

    打包模式有两种,一种是本地打包,也就是将需要安装的apt软件包打包上传到阿里云函数计算平台上,然后在配置层时引用该打包文件;另一种是在线打包,也就是在阿里云函数计算平台上进行在线打包。

    对于本地打包的情况,您可以按照以下步骤进行操作: 1.使用Ubuntu系统和apt-get中的工具安装需要的软件包,例如:

    sudo apt-get install -y xxx

    2.将安装好的软件包拷贝到同一个目录下。 3.将该目录打包为一个.zip 文件,例如:

    zip -r my_layer.zip .

    4.在阿里云控制台中创建函数计算层,并上传 .zip 文件。

    如果您选择在线打包,则可以通过如下命令行进行操作:

    docker run -v "$PWD":/tmp/layer -it     registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-python3.6:1.8.14     pip install -r /tmp/layer/requirements.txt -t /tmp/layer/python

    其中,-v 参数指定将本地当前目录($PWD)挂载到容器的/tmp/layer目录下。

    通过以上方法将打包好的软件包上传到函数计算层中之后,您就可以在创建函数时选择引用已有的层,来共享这些软件包了。

  2. 在 Dockerfile 中使用 apt-get 命令安装软件,然后使用 apt-get clean 命令清理 apt 缓存,例如:

    FROM ubuntu:18.04 RUN apt-get update && 
        apt-get install -y curl && 
        apt-get clean 这样可以确保软件已经安装并且 apt 缓存已经清理。但是,由于 Docker 构建过程会将每一个命令执行结果作为一个新的镜像层,所以这种方式会使镜像变得很大。同时,即使使用 apt-get clean,也只是清理了 apt 缓存而已,实际上这些软件仍然存在于镜像中。

  3. 可以参考这个文档,使用Dockerfile创建层https://help.aliyun.com/document_detail/468570.html?spm=a2c4g.181602.0.0.7d33275dycOlTm

    也可以使用serverless devs工具https://gitee.com/devsapp/fc/blob/main/docs/zh/command/build.md?spm=a2c4g.408236.0.0.3f9f751coLb7Pk&file=build.md#%E9%AB%98%E9%98%B6%E8%87%AA%E5%AE%9A%E4%B9%89%E6%93%8D%E4%BD%9C-use-sandbox

    此答案来自钉钉群“阿里函数计算官网客户”