Teh*_*cco 4 amazon-web-services docker aws-lambda
我想安装一些依赖项供我的 lambda 函数使用。原始管道使用 amazonlinux:2 docker 映像,我们在其上安装依赖项,然后使用无服务器打包并上传。
虽然这适用于 python3.7,但正如本 GitHub 问题中提到的,这对于 >3.7 的 python 版本来说是破坏性的,这可能是因为 python3.8 及更高版本没有 amazonlinux 作为基础映像。
所以我想使用尽可能最接近的基础图像,并使用public.ecr.aws/lambda/python:3.8.
但我的命令出现以下错误,
docker run public.ecr.aws/lambda/python:3.9
输出:入口点要求处理程序名称作为第一个参数
docker run --rm \
--volumes-from src \
public.ecr.aws/lambda/python:3.8 \
/bin/bash -c "cd $(container_dir) && sh build_lambda.sh"
输出:入口点需要处理程序名称成为第一个论点
但是当我运行时,带有如下命令的 dockerfile 可以工作docker build。
来自 --platform=linux/x86_64 public.ecr.aws/lambda/python:3.8
// 设置工作目录
RUN mkdir -p /opt/app
RUN mkdir -p /opt/app/build
RUN mkdir -p /opt/app/bin/
...
我希望能够使用 shell 来完成此操作,因此将此映像作为容器运行,无需 Dockerfile 即可访问其 shell。当前的管道将 shell 命令放在 build_lambda.sh 中,我不想对其进行太多更改。
任何更好的推荐方法也将受到欢迎
因此将此图像作为容器运行,无需 Dockerfile 即可访问其 shell
如果我理解正确的话,您正在寻找打开内部的外壳public.ecr.aws/lambda/python:3.8。
你可以运行:
docker run -it --entrypoint "/bin/bash" public.ecr.aws/lambda/python:3.8
Run Code Online (Sandbox Code Playgroud)
然后您就可以在里面自由运行命令,如下所示:
bash-4.2# pwd
/var/task
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |