阿里云函数计算层(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
目录下。
通过以上方法将打包好的软件包上传到函数计算层中之后,您就可以在创建函数时选择引用已有的层,来共享这些软件包了。
在 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
此答案来自钉钉群“阿里函数计算官网客户"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。