tongchenkeji 发表于:2023-4-19 17:59:260次点击 已关注取消关注 关注 私信 请问下 apt 安装的东西 怎么放到层?[阿里云函数计算] 暂停朗读为您朗读 请问下 apt 安装的东西 怎么放到层? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 函数计算# 请问下 apt 安装的东西 怎么放到层?1
wljslmzAM 2023-11-27 21:31:59 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目录下。 通过以上方法将打包好的软件包上传到函数计算层中之后,您就可以在创建函数时选择引用已有的层,来共享这些软件包了。
vohelonAM 2023-11-27 21:31:59 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 缓存而已,实际上这些软件仍然存在于镜像中。
芬奇福贵AM 2023-11-27 21:31:59 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 此答案来自钉钉群“阿里函数计算官网客户”
阿里云函数计算层(Layer)是一种可以在多个函数之间共享的代码、库、依赖等资源,因此您可以选择将需要安装的apt软件包打包为一个层,然后在多个函数中引用该层。
打包模式有两种,一种是本地打包,也就是将需要安装的apt软件包打包上传到阿里云函数计算平台上,然后在配置层时引用该打包文件;另一种是在线打包,也就是在阿里云函数计算平台上进行在线打包。
对于本地打包的情况,您可以按照以下步骤进行操作: 1.使用Ubuntu系统和apt-get中的工具安装需要的软件包,例如:
2.将安装好的软件包拷贝到同一个目录下。 3.将该目录打包为一个.zip 文件,例如:
4.在阿里云控制台中创建函数计算层,并上传 .zip 文件。
如果您选择在线打包,则可以通过如下命令行进行操作:
其中,
-v
参数指定将本地当前目录($PWD)挂载到容器的/tmp/layer
目录下。通过以上方法将打包好的软件包上传到函数计算层中之后,您就可以在创建函数时选择引用已有的层,来共享这些软件包了。
在 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 缓存而已,实际上这些软件仍然存在于镜像中。
可以参考这个文档,使用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
此答案来自钉钉群“阿里函数计算官网客户”