正在建置的服務需要讀取網芳裡的資料,因此需要使用到 mount 。
開發環境在 VBox 裡的 Debian(9 x86_64, docker 18.09.0, build 4d60db4 ) 下,建立 docker container(基於 node:8 的 image) 。
當完成開發,要佈署到正式的的環境 (ubuntu 16.04 x64, docker 17.03.2-ce, build f5ec1e2) 時,發現一直卡在 mount 的環節上。
一直得到… (IP 與 目錄 隱藏處理)
mount: //ip/folder is write-protected, mounting read-only
mount: cannot mount //ip/folder read-only
讓我摸不著頭緒…
已經作的檢查與處理…
在 host 主機執行 mount -t cifs //ip/folder samba -o username="xxx",password="xxx"
可以順利連結,並可以使用 ls 指令看到其中的目錄內容。
表示在 host 上可以順利與目標主機建立連線。
確認在建立 container 有包含以下兩行設定。
--cap-add SYS_ADMIN \
--cap-add DAC_READ_SEARCH \
有些說法是不需要第二行,無論是只留第一行,或是二行都放。
都得到一樣的錯誤訊息。
對 container 執行(exec) 進到 /bin/bash 環境,
跑了 apt-get update && apt-get install cifs-utils
後,
重試連結時,錯誤訊息變成了…
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
看起來好像卡在另一個地方。
但是在 host 主機上直接執行 mount 不會遇到只能唯讀連線,也沒有 permission denied 的問題,這是在相同連線的指令,用剪貼(確保內容相同)執行下得到的結果。
想問問有沒有遇到類似的問題?
沒有其它排除問題的可能方向?
我碰到跟你類似情況,我是用container去連Synology NAS的資料夾,一樣碰到Permission Denied,後來發現把SMB允許V3就可以了,預設只允許V2。