当前位置: 首页 > 面试题库 >

Neo4j容器(docker)中包含初始数据

童花蜂
2023-03-14
问题内容

与我合作的其他数据库泊坞窗(如Postgres)具有一种机制,可在容器首次启动后将一些初始数据导入其空实例中。通常以将SQL文件放在特定文件夹中的形式。

我需要对Neo4j做同样的事情。我想组成一个Neo4j docker映像,其中包含一些数据。什么是正确的方法?


问题答案:

可以实现…有2个要求:

  1. 组初始密码,这可能利用来实现bin/neo4j-admin set-initial-password <password>,然后
  2. 从文件中以密码格式导入数据 cat import/data.cypher | NEO4J_USERNAME=neo4j NEO4J_PASSWORD=${NEO4J_PASSWD} bin/cypher-shell --fail-fast

样本Dockerfile可能看起来像这样

FROM neo4j:3.2

ENV NEO4J_PASSWD neo4jadmin
ENV NEO4J_AUTH neo4j/${NEO4J_PASSWD}

COPY data.cypher /var/lib/neo4j/import/

VOLUME /data

CMD bin/neo4j-admin set-initial-password ${NEO4J_PASSWD} || true && \
    bin/neo4j start && sleep 5 && \
    for f in import/*; do \
      [ -f "$f" ] || continue; \
      cat "$f" | NEO4J_USERNAME=neo4j NEO4J_PASSWORD=${NEO4J_PASSWD} bin/cypher-shell --fail-fast && rm "$f"; \
    done && \
    tail -f logs/neo4j.log

建筑形象 sudo docker build -t neo4j-3.1:loaddata .

和运行容器 docker run -it --rm --name neo4jtest neo4j-3.1:loaddata



 类似资料:
  • 我正在尝试使用具有以下java代码示例的程序在docker容器中导入KERAS文件: 如果我在WSL2中运行该程序,它可以正常工作,但是如果我在docker容器中运行它,我会收到以下错误: ServletHolder.java:799JAF_G1000xpto.jaf.protocols.json.JSONServletxpto.jaf.JafError调用操作方法失败java.lang.NoCl

  • 我的服务器上有一个运行neo4j的docker容器,并且设置了自动备份来备份数据库。我试图测试从备份中还原数据库,但我不知道如何在docker容器中还原数据库。 我正在尝试使用 我从neo4j文档中读到,您必须关闭neo4j才能恢复备份,但我非常肯定在容器中关闭neo4j将关闭我的容器(容器是使用启动的)。是否有一种方法可以在不关闭neo4j的情况下还原备份,或者可以在不关闭容器的情况下关闭neo

  • 但是这个问题的答案并没有解决我的用例。 我有一个MySQL数据库,在生产中有5TB的数据。对于开发,我只需要大约500MB的数据。作为我的应用程序构建的一部分运行的集成测试需要访问MySQL数据库。目前,该数据库正在Jenkins上创建,并且通过构建过程将数据注入其中。这很慢。 我想用Docker替换这个过程的这一部分。我的想法是,我将拥有一个运行MySQL的Docker容器,并且已经将500MB

  • 问题内容: 我正在尝试使用MySQL数据库创建一个容器并将架构添加到这些数据库。 我当前的Dockerfile是: 为了创建容器,我遵循Docker提供的文档并执行以下命令: 但是,当我执行此命令时,未创建容器,并且在容器状态下,可以看到未成功执行CMD,实际上仅执行了命令。 无论如何,有没有一种方法可以使用架构初始化数据库,或者我需要手动执行这些操作? 问题答案: 对于如此长的答案,我感到很抱歉