Neo4j + Docker - 无法创建JVM

时间:2017-07-20 08:45:00

标签: docker neo4j jvm docker-compose dockerfile

我正在尝试为Neo4j数据库构建一个docker容器。虽然本地运行db不是问题,但容器在启动JVM时遇到问题。通过neo4j:3.2.2图像我正在构建自己的Dockerfile,我看不到使用不同版本的JRE。这个问题似乎源于他们neo4j.conf,它在无法识别的VM选项标志上崩溃,例如UseG1GCOmitStackTraceInFastThrow

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和容器如何工作,但我找不到任何可靠的信息来帮我解决这个问题。

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。原来是neo4j.conf文件中的行结尾。我使用VS代码将行结尾切换为'LF'并运行docker-compose up并且一切正常。希望这会有所帮助。

Visual Studio Code: How to show line endings

答案 1 :(得分:0)

必须停止docker-machine,转到conf文件,使用notepadd ++转换文件到UTF8,即使它已经是utf8,编辑eof到unix,保存,docker-machine启动,docker-compose up yey works

答案 2 :(得分:0)

我用Sublime轻松解决了这个问题。您可以在菜单->视图->行尾处检查当前行尾。只需将其转换为Unix并保存。

我希望这对其他人有帮助。