2017-09-14 46 views
0

我有一個期望第一個參數爲文件路徑的python應用程序。基本上是配置文件。如何將參數(文件路徑)傳遞給Docker中的python應用程序

這個文件應該得到的形式容積/在碼頭工人

安裝

如何通過這樣的:

。片段 Pytohn:

with open(sys.argv[1], 'r') as ymlfile: 
    cfg = yaml.load(ymlfile) 

泊塢文件

COPY install.py /wiki/install.py 
CMD [ "python", "/wiki/install.py", "/config/config.yml"] 

運行圖像命令

sudo docker run -v /config:/home/example/config/ app-wiki 

我期待config.yml文件位於/家庭/例子/配置/將被複制/配置目錄和裏面的碼頭文件 它將可用

但它不是這樣工作的。

我哪裏去錯了?

+0

我從你的迴應中得到了提示。 我期待config文件作爲install.py的參數。這條路我想從音量。所以我通過名稱wikiconfig創建了一個卷。 泊塢窗卷創建wikiconfig 然後分配此卷 須藤搬運工運行-v/wikiconfig:/家庭/例子/配置/應用維基 現在使用 CMD [「蟒蛇」,「/代理/安裝。 py「,」/wikiconfig/config.yml「] 這也不會wo – Paperless

回答

0

碼頭工人CMD的工作方式是需要確保將文件複製到具有正確權限的正確位置。

例子:

RUN mkdir -p /config 
RUN mkdir -p /wiki 
ADD cp <your-location> /config/config.yml 
ADD install.py /wiki/install.py 
CMD [ "python", "/wiki/install.py", "/config/config.yml"] 

另外,搬運工將讓你在你的本地目錄具有相同的權限。所以,請確保您在這兩個文件上都有正確的權限設置。

+0

我期待config文件作爲install.py的參數。這條路我想從音量。 – Paperless

0

問題是你的方向不對。格式爲<hostpath>:<containerpath>

下面

sudo docker run -v /config:/home/example/config/ app-wiki 

應該是

sudo docker run -v /home/example/config/:/config app-wiki 

否則本配置中/home/example/config/將在容器可在/config

編輯-1

增加了一些更多的解釋來清除你的疑惑。

COPY install.py /wiki/install.py 
CMD [ "python", "/wiki/install.py", "/config/config.yml"] 

當你運行上面的圖像就會想到一個配置可用在/config/config.yml

現在,如果你有其中有一個config.yml文件,那麼你的主機/home/tarun/wikiconfig上的文件夾運行使用

sudo docker run -v /home/tarun/wikiconfig:/config app-wiki 

如果config.yml文件的名稱是您wikiconfig文件夾不同的容器,那麼你將掛載該文件以config.yml

sudo docker run -v /home/tarun/wikiconfig/myconfig.yml:/config/config.yml app-wiki 

雙方將覆蓋在生成Dockerfile,因爲當你安裝一個主機從一個文件夾或文件添加的配置,任何物品在容器內使用相同的路徑不能訪問圖像

+0

我從你的回覆中得到了提示。 我期待config文件作爲install.py的參數。這條路我想從音量。所以我通過名稱wikiconfig創建了一個卷。 泊塢窗卷創建wikiconfig 然後分配此卷 須藤搬運工運行-v/wikiconfig:/家庭/例子/配置/應用維基 現在使用 CMD [「蟒蛇」,「/代理/安裝。 py「,」/wikiconfig/config.yml「] 這也不會工作 – Paperless

+0

你的音量順序是錯誤的。 '/ wikiconfig:/ home/example/config /'應該是'/ home/example/config /:/ wikiconfig' –

+0

Docker文件中應該用什麼來訪問這個配置文件? – Paperless

相關問題