【发布时间】:2016-03-22 01:36:11
【问题描述】:
我正在尝试使用 docker compose 来编写 ELK 架构。以下是撰写文件:
version: '2'
services:
elasticsearch_assets:
image: elasticsearch
volumes:
- ./elasticsearch/config:/usr/share/elasticsearch/config
- ./elasticsearch/data:/usr/share/elasticsearch/data
- ./elasticsearch/logs:/usr/share/elasticsearch/logs
command: /bin/true
elasticsearch:
image: elasticsearch
volumes_from:
- elasticsearch_assets:rw
depends_on:
- elasticsearch_assets
这里是项目结构的截图:
当我运行docker-compose up 时,出现以下错误:
Starting elkdocker_elasticsearch_assets_1
Starting elkdocker_elasticsearch_1
Attaching to elkdocker_elasticsearch_assets_1, elkdocker_elasticsearch_1
elkdocker_elasticsearch_assets_1 exited with code 0
elasticsearch_1 | [2016-03-22 01:28:59,939][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: your kernel is buggy and you should upgrade
elasticsearch_1 | Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.scripts' (/usr/share/elasticsearch/config/scripts)
elasticsearch_1 | Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/config/scripts
elasticsearch_1 | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
elasticsearch_1 | at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
elasticsearch_1 | at java.nio.file.Files.createDirectory(Files.java:674)
elasticsearch_1 | at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
elasticsearch_1 | at java.nio.file.Files.createDirectories(Files.java:767)
elasticsearch_1 | at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:337)
elasticsearch_1 | at org.elasticsearch.bootstrap.Security.addPath(Security.java:314)
elasticsearch_1 | at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:248)
elasticsearch_1 | at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212)
elasticsearch_1 | at org.elasticsearch.bootstrap.Security.configure(Security.java:118)
elasticsearch_1 | at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:196)
elasticsearch_1 | at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:167)
elasticsearch_1 | at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
elasticsearch_1 | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
elasticsearch_1 | Refer to the log for complete error details.
elkdocker_elasticsearch_1 exited with code 1
你知道为什么吗?
【问题讨论】:
-
主要问题是
Unable to access 'path.scripts' (/usr/share/elasticsearch/config/scripts)。看起来像是权限问题。 -
@warmoverflow 我已经知道了,但为什么是权限问题?
-
你的项目文件夹在
Users下吗? -
是
/Users/<myname>/<foldername>/<projectfolder>下 -
由于你的
yml文件和config文件夹是同级的,不知道是不是应该把路径设置成./config:container_path,还是试试绝对路径。
标签: elasticsearch docker docker-compose