簡體   English   中英

docker-compose docker-entrypoint-initdb.d 權限被拒絕

[英]docker-compose docker-entrypoint-initdb.d Permission denied

我正在嘗試運行 puppet pupperware 套件(所有 3 個服務器/puppet 服務器/puppet DB/DB 服務器)。

我正在使用由 puppetlabs 提供的官方 Yaml 文件用於 docker 撰寫: https://github.com/puppetlabs/docker-compose.pupperware

但是,當我在 docker 組合中運行 Yaml 文件時,我遇到了以下錯誤(來自 docker-compose 日志):

postgres_1  | ls: cannot open directory '/docker-entrypoint-initdb.d/': Permission denied

結果,構建失敗(只有傀儡服務器出現,而其他服務器沒有出現)。

我的 docker 主機是在 Proxmox 環境中運行的 Fedora 33 虛擬機。 Proxmox 在物理主機上運行。

我已禁用 SELinux,並且正在無根運行 docker (moby)。 我的本地用戶(uid 1000)可以在沒有 sudo 的情況下運行 docker。

我相信我需要在容器中設置權限(可能通過 Dockerfile),但我不確定如何更改它,我不確定如何同時使用 Dockerfile 和 docker-compose。

謝謝您的幫助

docker-compose 文件來自 Puppet 6 時代。 Pupperware 設置當前提取的 docker 映像是最新的,即 Puppet 7。

通過將圖像名稱更改為:

puppet/puppetserver:6.14.1
postgres:9.6
puppet/puppetdb:6.13.1

也許這也適用於你。

好吧,既然已經一個月了,你沒有答案,我會告訴你,試着用我所知道的來幫助你。

您應該將 Dockerfile 放在項目的根目錄中。 它包含由 docker 守護程序運行的命令以及由容器內的 linux 運行的命令。 然后它會運行 docker-compose.yml 的內容並運行其中的命令。 所以要解決權限問題你應該添加RUN,它在Bash中執行linux命令並將數據添加到文件夾中。

也看看這個答案

暫無
暫無

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

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