【问题标题】:Where are Python libraries installed on Docker container from AWS Lambda Python image?从 AWS Lambda Python 映像安装在 Docker 容器上的 Python 库在哪里?
【发布时间】:2021-05-27 01:51:54
【问题描述】:

我正在尝试使用 Docker 映像部署 lambda 函数,但我想修改我正在安装的 Python 包中的一些代码。我找不到安装包的位置供我修改源代码。

我的 Dockerfile 如下:

FROM public.ecr.aws/lambda/python:3.8

WORKDIR /usr/src/project

COPY lambda_handler.py ${LAMBDA_TASK_ROOT}

COPY requirements.txt ./

RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

CMD [ "lambda_handler.lambda_handler" ]

问题:requirements.txt 文件中的软件包安装在哪里?我尝试进入容器,但它没有给我 bash 终端,因为容器是由 Lambda 图像制成的,它要求入口点是 lambda 处理程序。

【问题讨论】:

    标签: python-3.x docker aws-lambda


    【解决方案1】:

    您可以覆盖图像的入口点,然后打印 python 搜索包的路径。

    docker run --rm -it --entrypoint python \
      public.ecr.aws/lambda/python:3.8 -c 'import sys; print("\n".join(sys.path))'
    
    /var/lang/lib/python38.zip
    /var/lang/lib/python3.8
    /var/lang/lib/python3.8/lib-dynload
    /var/lang/lib/python3.8/site-packages
    

    鉴于我们在上面找到的内容,您可以在构建的映像中输入一个 bash shell 并查看其中的内容

    /var/lang/lib/python3.8/site-packages
    

    以下内容:

    docker run --rm -it --entrypoint bash public.ecr.aws/lambda/python:3.8
    ls /var/lang/lib/python3.8/site-packages
    

    【讨论】:

    • 这很有帮助。谢谢!
    猜你喜欢
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多