以下命令完美运行,riak服务按预期启动:
docker run --name = riak -d -p 8087:8087 -p 8098:8098 -v $(pwd)/ schemas:/ etc / riak / schema basho / riak-ts
本地schemas
目录已成功装入,其中的sql
文件由riak读取。但是,如果我尝试挂载riak的data
或log
目录,则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 console”的输出 如果你想 等待更长时间,设置环境变量
WAIT_FOR_ERLANG到了 等待的秒数。
为什么riak在日志或数据目录挂载到本地目录时无法启动?
答案 0 :(得分: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
用户和组。我查看了泊坞窗图片中的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/
这应该解决它。至少现在(是。详情here。