透過 Docker 解釋器部署腳本時,Pycharm 中未偵測到磁碟區綁定

透過 Docker 解釋器部署腳本時,Pycharm 中未偵測到磁碟區綁定

我設定了磁碟區綁定,將幾個不同的路徑對應到我的 Docker 容器。我在 Pycharm Pro 中設定了 Docker 插件,並將容器的解釋器設定為我的 Python 解釋器。我可以使用 docker 解釋器部署 python 腳本,沒有任何問題(就在 docker 映像上建立的套件和依賴項而言)。

但是,當部署腳本並嘗試透過磁碟區綁定存取本機電腦上儲存的檔案時,它找不到它們。當我在pycharm 中開啟互動式偵錯shell 並執行os.path.exist 時,它對於磁碟區綁定(在容器內)的父路徑返回True,但對於應該從我的映射到那裡的任何檔案或目錄返回False。

這很奇怪,因為卷綁定處於活動狀態,我已經通過多種方式驗證了這一點:

  1. 我可以看到 Pycharm 的 Docker 工具視窗正確列出了綁定

  2. 從終端檢查時,我可以看到容器中顯示的映射檔案。

  3. 我還可以在容器中打開一個終端,啟動 python shell 並運行 os.path.exist,這也會返回 True,確認目錄已映射並在我在卷綁定中指定的路徑下找到。

為什麼在透過 Pycharm 的 Docker 解釋器部署 python 腳本時無法存取我的磁碟區綁定 - 即使腳本運行良好?

系統資訊:

Pycharm版本:Pycharm Professional 2019.1.2

Docker版本:2.0.0.3

本機電腦作業系統:macOS 10.13.4 High Sierra

Docker 作業系統:Ubuntu 16.04

答案1

事實證明,當我部署腳本時,Pycharm 的Docker 插件不會附加到現有正在運行的容器(儘管它有一個Docker 工具窗口,列出正在運行的容器並顯示其捲綁​​定,這有點誤導性,就像用於部署一樣) )。相反,每次部署腳本時,它都會從映像啟動一個新容器。因此,如果您希望在每次啟動腳本時將磁碟區綁定到這些臨時容器實例,則需要導航至“運行/編輯配置”,並在“Docker 容器設定”下為每個腳本設定磁碟區綁定。我不知道這是用於部署的磁碟區綁定,而不是在正在運行的容器上的 Docker 工具視窗中設定的磁碟區綁定。

相關內容