gpt4 book ai didi

python - 如何使用 docker 容器中的 Singularity 运行 python 程序?

转载 作者:行者123 更新时间:2023-12-04 19:10:23 28 4
gpt4 key购买 nike

我为我的纯 python 程序创建了一个 docker 容器并设置了 python main.py在容器运行时执行。在我的本地机器上运行容器按预期工作。但是,我想在我机构的高性能集群上运行容器。集群机器使用 Singularity ,我用它来拉取托管在 Dockerhub 上的 docker 镜像(repo 是 darshank11/ga_paci_final)。但是,当我尝试运行 Singularity 容器时,出现以下错误:python3: can't open file 'main.py': [Errno 2] No such file or directory.
我尝试更改 Dockerfile 中的基本镜像,例如从 FROM python:latestFROM ubuntu:latest.我确保 docker 容器在我的本地机器上工作,然后让我的一位同事从 Dockerhub 中提取容器并运行它。一切正常,直到我到达奇点。

这是我的 docker 文件:

FROM ubuntu:16.04

RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev

RUN mkdir src
WORKDIR /src
COPY . /src

RUN pip3 install --upgrade pip
RUN pip3 install -r requirements.txt

CMD ["python3", "-u", "main.py"]

最佳答案

您收到该错误是因为执行上下文不是您所期望的。奇点中的运行路径是主机操作系统上的当前目录(例如 ~/ga_paci_final ),它已安装到奇点镜像中。

如评论中所述,一种解决方案是在 docker CMD 中提供 python 文件的完整路径。陈述。另一种选择是修改 %runscript奇点定义文件 block 类似于:

%runscript
cd /src
python3 -u main.py

这样可以确保 Docker 和 Singularity 之间的运行环境相同。

关于python - 如何使用 docker 容器中的 Singularity 运行 python 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047350/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com