以下命令可以正常运行,并且riak服务将按预期启动:
本地schemas
目录已成功安装,并且riak读取了其中的sql
文件。但是,如果我尝试挂载riak的data
或log
目录,则riak服务无法启动,并且15秒后会超时:
docker logs riak
的输出:
为什么将riak的日志或数据目录挂载到本地目录后无法启动?
最佳答案
此问题与已挂载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/
这应该解决。至少现在。详细信息here。
关于docker - 装入数据卷后,Riak容器无法启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45183678/