代码之家  ›  专栏  ›  技术社区  ›  Shane

如何在基本AWS Lambda节点中安装依赖项。js Dockerfile图像

  •  0
  • Shane  · 技术社区  · 3 年前

    我正在使用Node编写AWS Lambda函数。通过容器映像部署的js。

    我使用了基本节点。下面的链接提供了用于Lambda的js Dockerfile映像,用于配置我的映像。这很有效。我的映像已部署,Lambda函数正在运行。

    https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-create-from-base

    以下是Dockerfile:

    FROM public.ecr.aws/lambda/nodejs:14
    
    COPY index.js package.json cad/  ${LAMBDA_TASK_ROOT}
    
    # Here I would like to install libgl1-mesa-dev, libx11-dev and libglu1-mesa-de
    
    RUN npm install
    
    CMD ["index.handler"]
    

    但是,我现在需要在映像上安装其他依赖项。具体来说,我需要OpenGL使用PDFTron将CAD文件转换为PDF,根据 PDFTron documentation here .所以我要求 libgl1-mesa-dev , libx11-dev libglu1-mesa-de .

    上述AWS文件中的信息说明:

    在函数处理程序旁边的${LAMBDA_TASK_ROOT}目录下安装任何依赖项,以确保调用函数时LAMBDA运行时可以找到它们。

    如果这是ubuntu或alpine映像,我可以使用 apt-get apk add .但这两种图像都不适用于此基础AWS Lambda节点图像,因为这不是ubuntu或alpine图像。

    所以我的问题是,如何安装 libgl1梅萨开发公司 , libx11开发 libglu1梅萨德酒店 这样Lambda运行时就可以在调用函数时找到它们了?

    0 回复  |  直到 3 年前
        1
  •  3
  •   Marcin    3 年前

    我认为在亚马逊Linux 2(lambda正在使用它)上,ubuntu的等价物是:

    FROM public.ecr.aws/lambda/nodejs:14
    
    COPY index.js package.json cad/  ${LAMBDA_TASK_ROOT}
    
    RUN yum install -y libgl1-mesa-devel libx11-devel  mesa-libGL-devel
    
    RUN npm install
    
    CMD ["index.handler"]
    
    推荐文章