Rm
無法(強制)刪除 Docker 建構中的目錄
有了這個 Dockerfile:
FROM php:5.4-fpm RUN apt-get -qqy update \ && apt-get -qqy install git \ libcurl4-gnutls-dev \ libmcrypt-dev \ libpng12-dev \ libxml2-dev \ libxslt-dev \ && docker-php-ext-install curl \ bcmath \ gd \ mcrypt \ mysql \ soap \ xsl \ zip \ && rm -rf /var/lib/apt/lists
我得到錯誤
rm: cannot remove '/var/lib/apt/lists': Directory not empty
但是,如果我將其分離
rm
到另一個RUN
語句中,錯誤就會突然消失。FROM php:5.4-fpm RUN apt-get -qqy update \ && apt-get -qqy install git \ libcurl4-gnutls-dev \ libmcrypt-dev \ libpng12-dev \ libxml2-dev \ libxslt-dev \ && docker-php-ext-install curl \ bcmath \ gd \ mcrypt \ mysql \ soap \ xsl \ zip RUN rm -rf /var/lib/apt/lists
rm
只是/bin/rm
在php:5.4-fpm
容器中。為什麼在第一種情況下docker build
無法刪除,為什麼即使帶有標誌/var/lib/apt/lists
,它也會以非零退出狀態退出?-f
根據 Docker 開發討論,這是 Docker 文件中排名第一的已知問題。這是目前的發行說明參考。
容器中的意外文件權限 AUFS 中的一個特性會阻止權限在上層和下層之間以可預測的方式傳播。這可能會導致訪問私鑰、數據庫實例等出現問題。有關完整資訊和解決方法,請參閱 Github 問題 783。
提到的解決方法可以在 Github 上找到