neo4j镜像使用的是 bitnami/neo4j:5.3.0 ,在环境变量中并没有提供设置内存的选项,所以我将 镜像 /opt/bitnami/neo4j/conf/neo4j.conf 拷贝出来,指定内存后,按镜像说明,将配置映射到/bitnami/neo4j/conf目录, 启动没有报错,但是7474端口无法访问了。
docker-compose文件配置如下:
version: '3.3'
services:
neo4j:
image: bitnami/neo4j:5.3.0
environment:
NEO4J_PASSWORD: 12345678
ports:
# 客户端页面访问端口
- "7474:7474"
# bolt协议访问端口
- "7687:7687"
volumes:
- "neo4j_data:/bitnami/neo4j/data"
- "./conf:/bitnami/neo4j/conf"
restart: always
volumes:
neo4j_data:
neo4j.conf文件是从 镜像中拷贝出来的,只是修改了:server.memory.heap.max_size=2048m
内存大小要怎样设置呢?
2023-12-25 补充:
实际测试、对比了不同修改方式,最终生成的 neo4j启动java命令、以及neo4j /opt/bitnami/neo4j/conf/neo4j.conf 的内容,配置原则应该是:
- bitnami提供了一些环境变量,如果仅仅是更改端口,使用环境变量就可以,比如:NEO4J_BIND_ADDRESS (缺省为 0.0.0.0, 这指示在所有网络接口上监听相应端口)、NEO4J_BOLT_PORT_NUMBER(缺省为 7687,声明bolt协议端口)
- 此外,bitnami也支持用户提供原始的 neo4j.conf文件,但如果提供了这个文件,就会忽略和neo4j.conf文件相关的环境变量的设置。
内存设置,目前没有对应的环境变量支持,只能修改 neo4j.conf文件,而缺省的 neo4j.conf文件中,监听地址缺省为 localhost,也就是说,此时只能在本机访问7474端口。在neo4j的启动日志中也能看到:访问地址为 http://localhost:7474 ,正常情况为:http://0.0.0.0:7474 ,所以修改内存配置,需要同时放开 监听地址配置,在neo4j.conf文件中有如下说明:
# With default configuration Neo4j only accepts local connections. # To accept non-local connections, uncomment this line: #server.default_listen_address=0.0.0.0
- 设置内存后,neo4j的java启动命令后将自动附加内存配置:类似
-Xms2097152k -Xmx4194304k
- "./conf:/bitnami/neo4j/conf"
你这个错了吧,你应该
`
"./conf/neo4j.conf:/bitnami/neo4j/conf/neo4j.conf"
`
这样应该就行了