我正在尝试将一个已存在的Python函数放入Docker容器中。这个Python代码会读取一个CSV文件(该文件与dockerfile在同一目录下)作为输入数据,并进行一些计算。Python文件的名称为"PracticeDeploy.py",其代码如下:
import pandas as pd
import pickle
from OptimizationFunction import main_barrel
# Read in model
gbrModel = pickle.load(open('/src/ValDiffGBR.pkl', 'rb'))
file_name = str(input())
data=pd.read_csv('/src/'+file_name)
new_data = data.dropna(how='any')
preds = main_barrel(gbrModel, new_data)
在我的docker目录中,我已经有一个子文件夹,其中包含了我第一个dockerfile安装的所有库。此外,在我的目录中,我有py文件、CSV和模型,我在上面的py文件中导入。现在,我正在尝试构建另一个dockerfile,该文件将以CSV名称作为输入,然后运行python代码。
以下是dockerfile:
FROM [my repository] as builder
ARG DATA_FILE
RUN mkdir src
WORKDIR /src
COPY . /src
ENTRYPOINT ["PracticeDeploy.py"]
我这样构建:
我这样构建:
sudo docker build --rm -f Dockerfile -t "first_docker" --build-arg DATA_FILE='/src/[csv_name].csv' .
我尝试这样运行:
我尝试这样运行:
sudo docker run --rm first_docker
然而我遇到了这个错误:
docker: Error response from daemon: OCI runtime create
failed: container_linux.go:348: starting container process
caused "exec: \"PracticeDeploy.py\": executable file not
found in $PATH": unknown.
我在运行docker时应该只插入参数吗?我的做法正确吗?我对docker非常陌生,完全被卡住了。
ENTRYPOINT ["./PracticeDeploy.py"]
应该可以工作。 - Ken Y-N#!/usr/bin/env python
。 - The Pjot