Neo4j + Docker - 无法创建 JVM

Ilt*_*ion 4 jvm neo4j docker dockerfile docker-compose

我正在尝试为 Neo4j DB 构建一个 docker 容器。虽然在本地运行数据库不是问题,但容器在启动 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/. .
Run Code Online (Sandbox Code Playgroud)

我还有一个 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
Run Code Online (Sandbox Code Playgroud)

我在 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.
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过类似的问题?我搜索了几个堆栈溢出帖子,并试图阅读有关 JVM 和容器如何工作的信息,但我找不到任何可靠的信息来帮助我解决这个问题。

小智 8

我遇到了同样的问题。原来是neo4j.conf文件上的一行结尾。我使用 VS 代码将行尾切换为 'LF' 并运行 docker-compose up,一切都解决了。希望这可以帮助。

Visual Studio Code:如何显示行尾