【发布时间】:2017-07-20 08:44:59
【问题描述】:
我正在尝试为 Neo4j 数据库构建一个 docker 容器。虽然在本地运行 db 不是问题,但容器在启动 JVM 时遇到问题。查看 neo4j:3.2.2 映像,我正在构建自己的 Dockerfile,但看不到我们使用不同版本的 JRE。这个问题似乎源于他们的 neo4j.conf,它在无法识别的 VM 选项标志上崩溃,例如 UseG1GC 和 OmitStackTraceInFastThrow
Dockerfile 相当短
FROM neo4j:3.2.2
ADD ./neo4j.conf /var/lib/neo4j/conf/.
ADD ./data/. /var/lib/neo4j/import
ADD ./scripts/. .
我还有一个 docker-compose.yml
version: '2'
services:
neo4j:
image: eu.gcr.io/tine-matsans-v2/neo4j:develop
container_name: neo4j
build:
context: ./neo4j/.
ports:
- "7474:7474"
- "7473:7473"
- "7687:7687"
environment:
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=litago
我在 Windows 10 机器上,但该映像构建了一个 unix 容器。我的同事使用相同的配置运行容器没有任何问题,尽管他使用的是 Mac。这不应该是相关的,因为问题在容器内。
neo4j | Active database: graph.db
neo4j | Directories in use:
neo4j | home: /var/lib/neo4j
neo4j | config: /var/lib/neo4j/conf
neo4j | logs: /var/lib/neo4j/logs
neo4j | plugins: /var/lib/neo4j/plugins
neo4j | import: /var/lib/neo4j/import
neo4j | data: /var/lib/neo4j/data
neo4j | certificates: /var/lib/neo4j/certificates
neo4j | run: /var/lib/neo4j/run
neo4j | Starting Neo4j.
neo4j | Unrecognized VM option 'UseG1GC
neo4j | Did you mean '(+/-)UseG1GC'?
neo4j | Error: Could not create the Java Virtual Machine.
neo4j | Error: A fatal exception has occurred. Program will exit.
有没有人遇到过类似的问题?我搜索了几篇堆栈溢出帖子,并试图了解 JVM 和容器的工作原理,但我找不到任何可靠的信息来帮助我解决这个问题。
【问题讨论】:
-
不,我刚才试过了,没有问题。可能你的 conf 文件有问题。
-
奇怪的是,我和我的同事使用的是同一个 conf 文件。
-
您是否检查了 EOL 和隐藏字符(断线...)?因为我认为“无法识别的 VM 选项”错误消息通常包含在
'中。第二个'不见了 -
我刚刚遇到了同样的问题。如果有一个已知的解决方案,我也会很感激听到它。我也在使用昨天工作的 neo4j:3.2.2 映像在 Windows 10 上运行。这是最近推送到我的机器上的更新,但不确定其中包括什么。
标签: docker neo4j jvm docker-compose dockerfile