如何使用泊坞窗运行命令

问题描述:

下面是我Dockerfile内容通过JSON文件作为参数:如何使用泊坞窗运行命令

FROM python:2.7-slim 

# Set the working directory to /app 
WORKDIR /app 

# Copy the current directory contents into the container at /app 
ADD . /app 

RUN pip install numpy==1.12.0 

CMD ["python", "t_1.py", "t_1.json"] 

我想将这个文件(t_1.sjon)通过在运行时与码头工人运行命令的参数,以便CMD [“python”,“t_1.py”,“RUN TIME ARGUMENT”]。我尝试装入卷,但作为json文件是独立的,我想作为参数失败。

请帮忙。

+0

是否将“t_1.json”存储在Docker镜像中,或者您想将文件本身(而不仅仅是文件名)作为运行时参数传递? – user3758302

+0

@ user3758302:我想通过json文件(文件内容可能会有所不同)本身作为运行时参数虽然文件名相同,但cmd应该是python t_1.py t_1.json – manzoor

+0

关键是安装一个卷或“文件”体积(即码头运行-v ./t_1.json:/data/t_1.json 正如在Tarun Lalwani的回答中所述)。如果eveything保持不变并且只有文件内容发生更改,则入口点不会造成伤害,但不是强制性的。 – user3758302

你应该使用什么是ENTRYPOINT

FROM python:2.7-slim 

# Set the working directory to /app 
WORKDIR /app 

# Copy the current directory contents into the container at /app 
ADD . /app 

RUN pip install numpy==1.12.0 

ENTRYPOINT ["python", "t_1.py"] 

现在,当你运行的泊坞窗命令

docker run -v ./t_1.json:/data/t_1.json <dockerimage> /data/t_1.json 

这将使它相当于python t_1.py /data/t_1.json

+0

非常感谢您的帮助! :) – manzoor

您可以使用bash运行任何命令码头集装箱内。

docker run <your_image> bash -c "python /app/t_1.json" 

我假设json文件在你有dockerfile的目录中。所以它被复制到/app的容器中,可以使用容器内的bash命令运行。