Docker容器启动失败:exec: 'python3 app.py'不在$PATH中求排查
容器启动报错:exec: "python3 app.py": executable file not found in $PATH 排查方案
问题详情
未在Dockerfile中指定PATH环境变量,但容器启动时多次出现runc创建失败,报错提示无法找到可执行文件,相关信息如下:
Dockerfile内容
# Set the base image to Python 3.9 FROM python:3.9 # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip3 install --trusted-host pypi.python.org -r requirements.txt # Set environment variables ENV SLACK_WEBHOOK_URL ${SLACK_WEBHOOK_URL} # Make port 80 available to the world outside this container EXPOSE 80 # Run app.py when the container launches CMD ["python3", "app.py"]
部署日志片段
[5/Oct/2023:11:05:30] [deployment:16] Finalizing your deployment [5/Oct/2023:11:05:45] [deployment:17] Creating your deployment [5/Oct/2023:11:09:11] runc create failed: unable to start container process: exec: "python3 app.py": executable file not found in $PATH [5/Oct/2023:11:09:34] [deployment:17] Node crashed; container "app": CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "python3 app.py": executable file not [5/Oct/2023:11:10:04] [deployment:17] Started 1 new node [5/Oct/2023:11:10:36] [deployment:17] Took too long [5/Oct/2023:11:10:44] runc create failed: unable to start container process: exec: "python3 app.py": executable file not found in $PATH
排查与解决方法
1. 核心原因分析
报错显示容器将python3 app.py作为单一可执行文件名去PATH中查找,而非将python3作为命令、app.py作为参数执行。这通常是因为启动命令被错误解析为单一字符串,而非分拆的参数列表。
2. 具体修复方案
调整Dockerfile的CMD格式
将数组格式的CMD改为shell格式,让容器通过shell解析命令:CMD python3 app.py或者利用官方Python镜像的默认配置(
python已关联到python3),改用:CMD ["python", "app.py"]检查部署平台的启动命令配置
若部署平台允许自定义启动命令,确保输入的是分拆的参数(如python3和app.py分别作为两个独立字段),而非合并为python3 app.py单一字符串。验证文件与路径正确性
在Dockerfile中添加验证步骤,确认文件和路径无误:RUN ls -l /app # 确认app.py存在于工作目录 RUN which python3 # 确认python3已在PATH中
内容的提问来源于stack exchange,提问作者Azizul Haque
相关产品推荐
相关产品推荐

