2016-08-15 29 views
0

我已創建一個泊塢窗容器指定打開文件在Python/Django的Web應用程序

WORKDIR /usr/src/app 

在我的Django的web應用程序,我嘗試訪問

file_path = '/usr/src/app/management_app/mock/printable-profile.json' 

File "/usr/src/app/management_app/urls/__init__.py", line 5, in <module> 
app_1 |  from ..views import views 
app_1 | File "/usr/src/app/management_app/views/views.py", line 13, in <module> 
app_1 |  json_data = open(file_path) 
app_1 | FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/app/management_app/mock/printable-profile.json' 

容器建正確。我通過創建一個快照和運行

$ docker run -t -i mgmtsnapshot /bin/bash 

訪問的容器文件系統,我可以證實該文件存在,在需要的路徑。在碼頭集裝箱內調用open()有問題嗎?或者還有什麼導致file not found錯誤?

回答

0

你安裝在/ usr/src目錄/應用程序從主機卷?如果是的話,你可能寧願碰到權限問題,因爲主機強制執行UID/GUID /權限,如果你Python應用程序在用戶X運行,但主機定義的uid = 14是諾斯用戶X,也u=r,g=,o=的權限,你無法訪問它。確保,你要麼通過

+0

謝謝失去他們,它可以爲您提供同步的用戶擁有映射(醜陋的),或者使用的工具,像http://docker-sync.io修復主機上的權限問題,我一直在尋找到可能的權限限制爲原因。我昨天發現,如果我推倒泊塢窗的容器,使用的_,而不是它的實際工作連字符刪除圖片,撰寫RM,然後向上--build,並用文件名。不知道爲什麼,但它只是... –

+0

你應該回答自己的問題,或至少是解決方案。我無法得到你在這裏的意思 –

相關問題