2017-08-10 72 views
0

下面是我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

回答

1

你應該使用什麼是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

0

您可以使用bash運行任何命令碼頭集裝箱內。

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

我假設json文件在你有dockerfile的目錄中。所以它被複制到/app的容器中,可以使用容器內的bash命令運行。