从 github actions 运行我的 docker 容器时找不到 Streamlit

问题描述 投票:0回答:1

6af83d23fe21d8a1a55ff68d32f9ed7b3c4da6d9bf032f26e8ccd3f56528e133 docker:来自守护进程的错误响应:无法为容器创建任务:无法创建 shim 任务:OCI 运行时创建失败:runc 创建失败:无法启动容器进程:exec:“streamlit”:在 $PATH 中找不到可执行文件:未知。 错误:进程已完成,退出代码为 127。

FROM python:3.8-slim-buster

EXPOSE 8501

RUN apt-get update && apt-get install -y \
    build-essential \
    software-properties-common \
    git \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

 COPY . /app

RUN pip3 install -r requirements.txt
# Use RUN command to print the $PATH environment variable
RUN echo $PATH
# ENTRYPOINT [ "streamlit","run","app.py","--server.port=8501","--server.address=0.0.0.0" ]
CMD ["/usr/local/bin/streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]

当我在本地构建 Docker 映像时一切正常,但在部署过程中失败

python amazon-web-services docker amazon-ec2 streamlit
1个回答
0
投票

我怀疑这里的问题与你如何安装Python包有关。您确定您的存储库中的

requirements.txt
包含
streamlit
吗?

假设您的项目如下所示:

├── app.py
├── Dockerfile
└── requirements.txt

并且

requirements.txt
包含(您的版本可能有所不同):

streamlit==1.32.2

您不需要指定

streamlit
可执行文件的绝对路径,因为如果它安装成功,那么它已经在您的路径上。

FROM python:3.8-slim-buster

EXPOSE 8501

RUN apt-get update && \
    apt-get install -y \
        build-essential \
        software-properties-common \
        git && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY requirements.txt /app

RUN pip3 install -r requirements.txt

COPY . /app

CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]

我已经对此进行了测试,它在本地和 GitHub Actions 上都有效。可以肯定的是,您应该查看 GitHub Actions 上的日志,您应该能够在其中看到

pip3 install -r requirements.txt
步骤并见证它正在(或没有!)安装
streamlit
包。

© www.soinside.com 2019 - 2024. All rights reserved.