我正在安装neo4j作为一个更大的设置在一个码头容器(不是一个独立的neo4j映像)的一部分。首先,我在一个对接机器VM中的窗口上测试它,它构建并运行起来很有魅力。然后我把它带到数字海洋,它也构建了,但是当到达Dockerfile中的service neo4j-service start时,它显示
Starting Neo4j Server...WARNING: not changing user
process [138]... waiting for server to be ready............................这些点不断增加-没有失败,没有分离。如果我登录到容器并只运行service neo4j-service start,同样的事情就会发生。但是,在这种情况下,如果进程和检查状态为I ^C,则neo4j正在运行,并在7474上进行应答。
所以这并不是要开始服务,而是要脱离。
我尝试(在一个正在运行的容器中):
如果结果总是一样的话:流程不会分离,保持点运行,服务在进程中断后运行良好。
一些系统信息(来自容器,由默认的ubuntu映像构建):
root@04b1ec55572e:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Reelease: 14.04
Cdename: trusty
root@04b1ec55572e:/# ulimit -n
524288东道系统:
/# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty我现在看到的唯一选项是在后台运行命令(service neo4j-service start &),休眠2-3秒,然后检查服务是否正在运行,但是为什么首先需要这种可怕的措施。
任何帮助都是非常感谢的。
日志:https://gist.github.com/koacms-deployment/dc5afb2a8a371237cfd8
Dockerfile:
# Get neo4j
RUN wget -O - http://debian.neo4j.org/neotechnology.gpg.key| apt-key add - # Import our signing key
RUN echo 'deb http://debian.neo4j.org/repo stable/' > /etc/apt/sources.list.d/neo4j.list # Create an Apt sources.list file
RUN apt-get update -y # Find out about the files in our repository
RUN apt-get install neo4j -y # Install Neo4j, community edition
# update neo4j listen ip to current ip
RUN sed "s/#org.neo4j.server.webserver.address=0.0.0.0/org.neo4j.server.webserver.address=0.0.0.0/" -i /etc/neo4j/neo4j-server.properties
# ... a bit later ...
RUN service neo4j-service start发布于 2015-09-07 12:37:38
以下是调查总结:
neo4j日志没有显示什么有趣的内容,但是查看/var/lib/ne4j/bin/ne4j(启动服务的neo4j可执行文件)时,我意识到它使用lsof来检查进程是否已准备好监听7474 (或配置为neo4j的任何端口)。
neo4j启动脚本中的lsof调用没有返回任何内容,即使我可以确认neo4j已经在使用netstat和直接请求neo4j REST端点。
检查lsof发现了一些与neo4j相关的“拒绝权限”消息。
在谷歌上搜索类似于“码头管理员拒绝许可”的内容,我发现了一篇有用的文章:https://practiceml.wordpress.com/2014/12/26/permission-denied-for-lsof-in-docker/。作者与Linux 17有类似的问题,但显然它也适用于Ubuntu。
修复可以归结为在主机上运行这个。
sudo aa-complain /etc/apparmor.d/docker如果您碰巧没有aa-抱怨,安装它时:
sudo apt-get install apparmor-utils现在,虽然这确实解决了这个问题,但我将欢迎关于这个问题可能带来的安全或其他影响的评论。
https://stackoverflow.com/questions/32434316
复制相似问题