错误:权限被拒绝 - /usr/share/logstash/sincedb/sincedb

SyC*_*ode 2 logstash docker-compose

我有一个docker-compose用于运行包括 Logstash 在内的多个容器的文件。我已经将挂载映射sincedb到片段中:

logstash:
build:
  context: logstash/
volumes:      
  - ./tmp/logstash/sincedb:/usr/share/logstash/sincedb
Run Code Online (Sandbox Code Playgroud)

Logstash 容器有一些权限错误,特别是在访问 sincedb 时,如下面的错误片段所示:

Error: Permission denied - /usr/share/logstash/sincedb/sincedb
Exception: Errno::EACCES
Run Code Online (Sandbox Code Playgroud)

我尝试在容器 chmod 中执行,但出现以下错误:

bash-4.2$ chmod o+wx /usr/share/logstash/sincedb/
chmod: changing permissions of ‘/usr/share/logstash/sincedb/’: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

有没有办法克服这个权限问题?

SyC*_*ode 5

我能够通过为主机文件夹设置适当的权限来解决该问题,该文件夹映射到 docker 容器中的文件夹。通过chmod -R 757对文件夹发出命令,可以访问。然而,这是一个临时措施,我后来发现可以docker-compose.yml通过附加:rw在特定行的末尾来在文件中设置正确的权限,如下所示:

 volumes:
  - logstash_data:/usr/share/logstash/sincedb:rw
Run Code Online (Sandbox Code Playgroud)

这有效地维护了跨重建的权限,这是前面提到的方法的限制(除了安全隐患)