[英]How to fix permission denied for .git/ directory when performing git push?
[英]How to fix denied permission to access a directory if that directory was added during docker build?
我使用以下Dockerfile
擴展了Dockerfile
映像:
FROM solr:6.6
COPY --chown=solr:solr ./services-core/search/A12Core /A12Core/
請注意, solr:6.6
具有USER solr
語句。
當運行從該Dockerfile構建的容器時,嘗試訪問/A12Core
下的文件或目錄時,權限被拒絕:
$ docker run -it 2f3c58f093e6 /bin/bash
solr@c091f0cd9127:/opt/solr$ cd /A12Core
solr@c091f0cd9127:/A12Core$ cd conf
bash: cd: conf: Permission denied
solr@c091f0cd9127:/A12Core$ ls -l
total 8
drw-r--r-- 3 solr solr 4096 Aug 31 14:21 conf
-rw-r--r-- 1 solr solr 158 Jun 28 14:25 core.properties
solr@c091f0cd9127:/A12Core$ whoami
solr
solr@c091f0cd9127:/A12Core$
為了獲得訪問/A12Core
目錄中的文件和文件夾的權限,我需要做什么?
請注意,我正在從Windows 7運行18.03.0-ce
build。我的18.03.0-ce
版本是18.03.0-ce
。
我在這里有另一個答案,這是錯誤的(但仍然可以解決您的問題:),但是現在我在您的Dockerfile中看到了拼寫錯誤。 讓我們看一下這條線。
COPY --chown=solr:solr ./services-core/search/A12Core /A12Core/
COPY
命令檢查容器中的目標路徑是否存在。 如果沒有,它將在復制之前創建它。
A12Core
從./services-core/search
。 /A12Core
存在。 root:root
權限創建它。 A12Core
內容A12Core
到新創建的A12Core
。 最后,所有內容都在/A12Core
,但它屬於root
,您無法訪問它。
由於solr
docker image已經設置了USER solr
,所以要走的路是
RUN mkdir /A12Core
COPY ./services-core/search/A12Core /A12Core
正如文檔所說
該
USER
指令設置的用戶名...用戶群......對於任何RUN
,CMD
和ENTRYPOINT
是按照它的指示Dockerfile
。
您的目錄沒有執行權限:
drw-r--r-- 3 solr solr 4096 Aug 31 14:21 conf
否則,您將無法根據Linux文件系統權限進入該目錄。 您可以使用chmod在主機中修復該問題:
chmod +x conf
如果在Dockerfile中執行此命令(並帶有RUN
行),它將導致將任何修改過的文件復制到新層,因此,如果以遞歸方式運行此命令,則可能會使映像大小增加一倍,因此建議進行修復如果可能,將其放在構建主機上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.