簡體   English   中英

Docker-compose 在 WSL 上使用不正確的路徑:\\\\?\\C:\\

[英]Docker-compose on WSL using incorrect path: \\?\C:\

我已經在這個問題上苦苦掙扎了一天多,盡管在 SO 和其他地方也有類似的問題,但沒有一個真正符合我的問題,也沒有解決它。 對於上下文,我使用docker沒有問題,只有docker compose

我正在 WSL 環境中處理一個使用 docker compose 的舊項目。 當我運行時:

docker-compose -f /srv/etc/docker/docker-compose.yml -f /srv/etc/docker/docker-compose.prod.yml up --build

我收到以下錯誤:

OSError: Can not read file in context: \\?\C:\Users\<path>\venv\bin\python

其他有類似問題的路徑從/mnt/c ,這可以通過將/c掛載到該目錄來解決。 但是,我的錯誤路徑與我在類似問題上看到的其他路徑不匹配。

無論如何,我嘗試了安裝解決方案,但並沒有改變我的問題。

我也看到提到docker engine use wsl ,但docker engine use wsl docker engine check沒有顯示wsl ,只有一個叫做current

我已經按照本文中的步驟讓 WSL 使用 Docker for Windows,我在類似的問題中看到過與 OP 之前所做的類似的問題,或者作為解決問題的建議。

所以,有幾個問題:

  • 有誰知道為什么 Docker compose 試圖使用這么奇怪的路徑?
  • 我該如何修復這條路徑?

我相信你遇到了https://github.com/docker/compose/issues/7101

顯然,通過調用 docker-compose 我正在調用 Docker for Windows 的 docker compose,它使用 Windows 的 python。 Python 的 sys.platform 是“win32”(當然),這導致 docker compose 將該前綴添加到我的上下文中。 WSL 的 docker-compose 調用正確的 python,它返回 sys.platform 作為 linux。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM