开发者社区 > 云原生 > Serverless > 正文

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

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

展开
收起
巴拉巴拉巴拉 2023-04-19 17:59:26 484 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云函数计算层(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目录下。

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

    2023-04-30 22:37:25
    赞同 展开评论 打赏
  • 在 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 缓存而已,实际上这些软件仍然存在于镜像中。

    2023-04-22 07:56:17
    赞同 展开评论 打赏
  • 可以参考这个文档,使用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

    回答4.png

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

    2023-04-19 18:09:29
    赞同 展开评论 打赏
问答地址:

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载