You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS Python Lambda基础镜像中安装Git后无法找到的问题求助

问题:AWS Lambda Python Docker镜像中Git安装后无法找到

我用AWS官方Python基础镜像构建Lambda函数的Docker镜像,Dockerfile里通过yum安装了Git,构建成功,但进入CLI验证时找不到Git。

我的Dockerfile代码:

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

# Install the function's dependencies using file requirements.txt
# from your project folder.

COPY requirements.txt  .

RUN  pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"; \
     yum update -y \
     yum install git -y

# Copy function code
COPY app.py ${LAMBDA_TASK_ROOT}

ENTRYPOINT ["/bin/bash", "-l", "-c"]

# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "app.handler" ]

我修改了ENTRYPOINT进入CLI检查,查看镜像文件系统时能确认Git相关文件(如/usr/bin/git)已存在,且我只希望使用官方基础镜像。


解决方法

1. 修正Dockerfile的RUN命令语法错误

你的RUN命令里,yum update -y和yum install git -y之间没有用&&或;分隔,导致yum install被当作yum update的参数,实际这条命令并未正确执行(即使构建日志显示成功,实际Git可能没装对)。修改后的RUN命令如下:

RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}" && \
    yum update -y && \
    yum install git -y

2. 恢复官方默认ENTRYPOINT

不要替换官方镜像的ENTRYPOINT,Lambda官方镜像的默认ENTRYPOINT(/lambda-entrypoint.sh)会配置正确的环境变量,包括PATH。修改后的ENTRYPOINT行:

ENTRYPOINT ["/lambda-entrypoint.sh"]

3. 正确验证Git是否安装

构建镜像后,用以下步骤进入容器验证:

  • 构建镜像:docker build -t lambda-git .
  • 启动临时容器:docker run -d lambda-git sleep 300
  • 进入容器:docker exec -it $(docker ps -q --filter ancestor=lambda-git) /bin/bash
  • 执行git --version确认Git可用

如果一定要用bash作为ENTRYPOINT进入,执行Git时可以用完整路径/usr/bin/git --version,或者先检查echo $PATH确认/usr/bin是否在路径中。


内容的提问来源于stack exchange,提问作者RushHour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:52:17