![](/img/trans.png)
[英]How to run a python script in Java program using Docker container?
[英]How to run a python program using Singularity from a docker container?
我已經為我的純python程序創建了一個docker容器,並將python main.py
設置為在容器運行時執行。 在本地計算機上按預期運行容器。 但是,我想在我機構的高性能集群上運行該容器。 集群機器使用Singularity ,我用它來提取托管在Dockerhub上的Docker映像(存儲庫為darshank11 / ga_paci_final)。 但是,當我嘗試運行奇異容器時,出現以下錯誤: python3: can't open file 'main.py': [Errno 2] No such file or directory.
我試圖更改Dockerfile中的基本映像,例如從FROM python:latest
更改為FROM 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"]
您收到該錯誤的原因是執行上下文不是您所期望的。 奇異的運行路徑是主機OS上的當前目錄(例如~/ga_paci_final
),該目錄已安裝到奇異映像中。
如評論中所述,一種解決方案是在docker CMD
語句中提供python文件的完整路徑。 另一個選擇是將奇異性定義文件的%runscript
塊修改為:
%runscript
cd /src
python3 -u main.py
這樣,您可以確保Docker和Singularity之間的運行環境相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.