簡體   English   中英

OCI 運行時創建失敗:runc 創建失敗:無法啟動容器進程:exec:“split_csv.py”:在 $PATH 中找不到可執行文件:未知

[英]OCI runtime create failed: runc create failed: unable to start container process: exec: "split_csv.py": executable file not found in $PATH: unknown

我的碼頭文件

來自python:最新

#ENTRYPOINT [“python split_csv.py -i test_data.csv -o test_data.csv -r 100”]

工作目錄 /docker_task2

環境端口 80

復制 split_csv.py ./docker_task2

添加 test_data.csv ./docker_task2

復制 。 /docker_task2//

CMD ["python", "split_csv.py", "test_data.csv"]

我的代碼

docker run splitter split_csv.py -i test_data.csv -o test_data.csv -r 100

當你啟動容器

docker run splitter \
  split_csv.py -i test_data.csv -o test_data.csv -r 100

它嘗試按照正常的 Unix 規則在$PATH環境變量中查找命令split_csv.py 您已將腳本復制到映像中的/docker_task2目錄中,該目錄也是當前目錄,並且您需要明確指定路徑,因為該目錄不是像/usr/bin這樣的默認$PATH位置之一。

docker run splitter \
  ./split_csv.py ...

這也受制於此處的其他正常 Unix 規則:腳本必須是可執行的(如果不是,則在您的主機系統上運行chmod +x split_csv.py ,並將該權限更改提交給源代碼控制),並且它必須以"shebang" line #!/usr/bin/env python3作為文件的第一行。

修復此問題后,您也無需在圖像的CMD中重復python解釋器。 您可能可以顯着簡化 Dockerfile:

FROM python:latest
WORKDIR /docker_task2

# Install Python library dependencies first; saves time on rebuild
# COPY requirements.txt ./
# RUN pip install -r requirements.txt

# Copy the entire context directory ./ to the current directory ./
COPY ./ ./

# Set defaults to run the image
ENV PORT 80
CMD ["./split_csv.py", "-i", "test_data.csv"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM