Neo4j对我来说很新.我有一个neo4j数据库的备份,我想通过使用该备份创建一个数据库来构建一个docker容器.
我知道我可以使用neo4j-admin restore --from=<backup-directory> [--database=<name>] [--force[=<true|false>]]命令,但我正在寻找一个Docker容器可以用来在创建容器时重新创建数据库的东西.
neo4j docker镜像的文档使用容器内的现有数据库数据库.但我需要从中恢复备份并创建数据库.
Neo4j的官方映像提供了一个钩子,因此您可以在启动时加载数据.为此,您必须定义一个EXTENSION_SCRIPT以运行时命名的环境变量,该变量指向要运行的数据库恢复脚本(请参阅https://neo4j.com/developer/docker-23/).
下面是使用docker-compose的示例(这也可以使用Dockerfile完成):
version: '2'
services:
neo4j:
image: neo4j:3.2
ports:
- "7474:7474"
- "7687:7687"
environment:
- EXTENSION_SCRIPT=/neo4j-data/neo4j-init.sh :
volumes:
- ./neo4j-data:/neo4j-data
Run Code Online (Sandbox Code Playgroud)
然后,在初始化脚本中,必须首次还原数据库一次
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# do not run init script at each container strat but only at the first start
if [ ! -f /tmp/neo4j-import-done.flag ]; then
/var/lib/neo4j/bin/neo4j-admin neo4j-admin restore --from=<backup-directory mount as a docker volume under /neo4j-data> [--database=<name>] [--force[=<true|false>]]
touch /tmp/neo4j-import-done.flag
else
echo "The import has already been made."
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |