0

以下命令完美运行,riak 服务按预期启动:

docker run --name=riak -d -p 8087:8087 -p 8098:8098 -v $(pwd)/schemas:/etc/riak/schema basho/riak-ts

本地schemas目录挂载成功,sqlriak读取其中的文件。但是,如果我尝试挂载 riakdatalog目录,riak 服务不会启动并在 15 秒后超时:

docker run --name=riak -d -p 8087:8087 -p 8098:8098 -v $(pwd)/logs:/var/log/riak -v $(pwd)/schemas:/etc/riak/schema basho /riak-ts

输出docker logs riak

+ /usr/sbin/riak start
riak 未能在 15 秒内启动,
有关更多信息,请参阅“riak 控制台”的输出。
如果要等待更长时间,请将环境变量
WAIT_FOR_ERLANG 设置为等待的秒数。

为什么 riak 的日志或数据目录挂载到本地目录时无法启动?

4

1 回答 1

2

此问题与已安装log文件夹的目录所有者有关。该文件夹$GROUP$USER预计riak如下:

root@20e489124b9a:/var/log# ls -l
drwxr-xr-x 2 riak riak   4096 Jul 19 10:00 riak

但是你得到的卷是:

root@3546d261a465:/var/log# ls -l
drwxr-xr-x 2 root root   4096 Jul 19 09:58 riak

解决此问题的一种方法是riak在启动容器之前将目录所有权作为主机上的用户和组。我查看了 docker 映像中的 UID/GID ( /etc/passwd),它们是:

riak:x:102:105:Riak user,,,:/var/lib/riak:/bin/bash

现在在启动容器之前更改主机目录的所有权:

sudo chown 102:105 logs/
sudo chown 102:105 data/

这应该解决它。至少现在。详情在这里

于 2017-07-19T10:13:15.417 回答