我想使用 docker-compose 通过 docker 运行一个 Neo4J 实例。
docker-compose.yml
version: '3'
services:
neo4j:
container_name: neo4j-lab
image: neo4j:latest
environment:
- NEO4J_dbms_memory_pagecache_size=2G
- NEO4J_dbms_memory_heap_maxSize=4G
- NEO4J_dbms_memory_heap_initialSize=512M
- NEO4J_AUTH=neo4j/changeme
ports:
- 7474:7474
- 7687:7687
volumes:
- neo4j_data:/data
- neo4j_conf:/conf
- ./import:/import
volumes:
neo4j_data:
neo4j_conf:
docker-compose up
运行以下命令非常好,我可以到达登录屏幕。NEO4J_AUTH
至 none
,则未询问任何凭据。 neo4j/neo4j
它说我不能使用默认密码By default Neo4j requires authentication and requires you to login with neo4j/neo4j at the first connection and set a new password. You can set the password for the Docker container directly by specifying --env NEO4J_AUTH=neo4j/password in your run directive. Alternatively, you can disable authentication by specifying --env NEO4J_AUTH=none instead.
neo4j-lab | 2019-03-13 23:02:32.378+0000 INFO Starting...
neo4j-lab | 2019-03-13 23:02:37.796+0000 INFO Bolt enabled on 0.0.0.0:7687.
neo4j-lab | 2019-03-13 23:02:41.102+0000 INFO Started.
neo4j-lab | 2019-03-13 23:02:43.935+0000 INFO Remote interface available at http://localhost:7474/
neo4j-lab | 2019-03-13 23:02:56.105+0000 WARN The client is unauthorized due to authentication failure.
docker-compose down
然后 docker-compose up
而我在 docker-compose file
中更改了密码然后问题再次出现。auth
文件出现在卷中。docker volume inspect <volume_name>
[
{
"CreatedAt": "2019-03-14T11:17:08+01:00",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "neo4j",
"com.docker.compose.volume": "neo4j_data"
},
"Mountpoint": "/data/docker/volumes/neo4j_neo4j_data/_data",
"Name": "neo4j_neo4j_data",
"Options": null,
"Scope": "local"
}
]
auth
文件位于 dbms
目录。最佳答案
Neo4j 码头开发人员在这里。
发生这种情况的原因是 NEO4J_AUTH
环境变量不设置数据库密码,它设置了 初始 只有密码。
如果您正在安装一个包含现有数据库的数据卷,那么 NEO4J_AUTH
无效,因为该数据库已经有密码。听起来这就是您在这里遇到的情况。
围绕此功能的文档不是很好,我已经更新了它!见:Neo4j docker authentication documentation
https://stackoverflow.com/questions/55152286/