因此,我正在OSX上进行开发,并且一直在寻找解决方法,但无济于事。现在,我有一个容器,其中包含我要向其中添加neo4j的其他一些服务。
现在,撰写文件包含如下服务:
docker-compose.yml
version: '2'
services:
#several other services before this
neo4j:
build: ./neo4j
volumes:
- "$HOME/neo4j/data:/data"
ports:
- "7474:7474"
- "7687:7687"
当我没有为neo4j指定卷时,一切正常,但是我希望能够将数据持久保存在容器之外。主要是因为我要导入大量数据,并且不得不不时地切换容器以处理其他项目。我的公司使用makefile来构建我在其上运行make的容器,这是当它到达neo4j时得到的输出:
neo4j_1 | 2018-07-11 20:58:02.010+0000 ERROR Failed to start Neo4j:
Starting Neo4j failed: Component
'org.neo4j.server.database.LifecycleManagingDatabase@32193bea' was
successfully initialized, but failed to start. Please see the attached
cause exception "Unable to create directory path
[/var/lib/neo4j/data/databases/graph.db] for Neo4j store.".
我尝试将目录锁定为neo4j,将其更改为777权限,每次都出现相同的问题。先前的数据目录中是否没有内容都没关系。
使用docker文件neo4j已在此处公开提供:https://github.com/neo4j/docker-neo4j-publish/tree/master/3.4.1/community
只有一次能使它正常工作,那是当我从本地Neo4J DB复制所有数据库文件时,我已经在容器外部运行了
sudo chown -R neo4j $HOME/neo4j/data
sudo chmod -R 777 $HOME/neo4j/data
docker run \
--publish=7474:7474 --publish=7687:7687 \
--volume=$HOME/neo4j/data:/data \
neo4j:3.4
问题是,我无法从我的项目容器中访问它,现在,当一切正常启动时,makefile和docker-composer.yml似乎会自动链接,因此我只需要指定http://neo4j:neo4j@neo4j:7474
能够使用项目容器内的PHP OGM类连接到它。
有人对我如何解决此权限问题有任何建议吗?