2016-04-28 47 views
0

這裏是我的Dockerfile的一部分:當地搬運工量從www數據的寫入權限

RUN mkdir /data 
RUN chown www-data:www-data /data 
RUN chmod 664 /data 
VOLUME ["/data"] 

我使用以下命令創建的圖像:

docker build -t webapp . 

我運行它是這樣的:

docker run -d -p 80:80 -v /home/user/data:/data webapp 

但在我的主機用戶目錄中,data目錄是這樣創建的:

drwxr-xr-x 2 root root 4,0K avril 28 21:52 data 

而在圖像(搬運工EXEC -IT CONTAINER_ID bash)的我有:

drwxr-xr-x 2 root root 4096 Apr 28 19:52 data 

所以命令從Dockerfile忽略。
Web Docker應用程序如何獲得在主機目錄上寫入的權限?

回答

1

所以你正在建立一個圖像,設置chmods,它很酷。 但是,然後你用-v選項運行容器,這意味着/數據將被替換爲安裝的卷。此時,來自構建映像的所有文件和權限都將被忽略。您可以通過運行不帶-v選項的容器來檢查。解決方案是創建入口點腳本(在Dockerfile中使用ENTRYPOINT或CMD命令),它將首先修復權限,然後爲圖像運行原始命令。