Neo4j の起動

Neo4j の起動

pythonでneo4j を使えるようにする

Llama 3.2とNeo4jでローカルGraphRAG環境を構築

これをやる場合
Neo4jのCypherクエリ言語を拡張するライブラリapoc-coreを使用する

Dockerコンテナを利用したNeo4jの環境構築とAPOCのインストール手順
によれば
コンテナで起動したNeo4jにはAPOCのバイナリが含まれていないため、手動でインストールする必要がある

APOC (Awesome Procedures On Cypher) は、Neo4jにおける拡張機能の一つである。
データ操作、外部データの取り込み、ランダムグラフ生成など、Neo4jの基本機能を拡張するプロシージャを提供する。

製品の標準機能として取り込まれた拡張機能も多々あるようで、
とりあえずコアのAPOC入れておいたほうがいい、ということらしい

docker exec -it neo4j-neo4j-1 neo4j --version

を実行したけど

Error response from daemon: No such container: neo4j-neo4j-1

となった

コンテナが起動していないと意味がない

まずはneo4jを起動する

Docker-compose を使う方法を採用

対応ディレクトリが必要なので

mkdir -p ./data ./logs ./conf ./plugins
chmod 755 ./data ./logs ./conf ./plugins

で作成する

次に

touch docker-compose.yml

でファイルを作成


dservices:
  neo4j:
    image: neo4j:latest
    ports:
      - "7474:7474"
      - "7687:7687"
    environment:
      NEO4J_AUTH: "neo4j/[8文字以上のパスワード]"
      NEO4J_apoc_export_file_enabled: "true"
      NEO4J_apoc_import_file_enabled: "true"
      NEO4J_apoc_import_file_use__neo4j__config: "true"
      NEO4J_dbms_security_procedures_unrestricted: "apoc.*"
    ulimits:
      nofile:
        soft: 40000
        hard: 40000
    volumes:
      - ./data:/data
      - ./logs:/logs
      - ./conf:/conf
      - ./plugins:/plugins

として保存

なお
neo4j/ は必須で、
NEO4J_AUTH の形式は常に ユーザー名/パスワード
となっている
なので通常はパスワードを変更する

docker compose up -d

を実行したが

validating /Users/snowpool/aw10s/ne4j_pg/docker-compose.yml: (root) Additional property dservices is not allowed

となる

GPTで調べると

ocker-compose.yml ファイルで
トップレベルのキーとして dservices が使用されているためです。
Docker Compose の標準では、
トップレベルのキーは services である必要があります。

となるため
コードを修正

最初の

dservices:

services:

へ変更し保存

docker compose up -d

を実行すれば

[+] Running 2/2
 ✔ Network ne4j_pg_default    Created                                      0.0s 
 ✔ Container ne4j_pg-neo4j-1  Started                                      0.2s 

となる

これで
http://localhost:7474
へアクセスし
管理画面が表示されればOK

管理画面には
docker-compose.yamlで設定したID「neo4j」とそのパスワードでログインする

ログインしたらテスト

CREATE (p:Person {name: "Alice", age: 30})-[:KNOWS]->(p2:Person {name: "Bob", age: 25})


Cypherクエリを実行し、ノードとリレーションシップを作成

MATCH (n) RETURN n

を実行すると
登録したデータの確認が画像で表示される

データ永続化のテストのため

docker compose down

でコンテナを停止

コンテナを再起動するので

docker compose up -d

これで再度

MATCH (n) RETURN n

を実行して表示されれば問題なし

次に
APOCバイナリのインストール

これには dockerコンテナの名前が必要なので

docker ps

を実行しコンテナ名を調べる

CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                      NAMES
cc1a5da764cf   neo4j:latest   "tini -g -- /startup…"   7 minutes ago   Up 7 minutes   0.0.0.0:7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp   ne4j_pg-neo4j-1

という結果になったので
コンテナ名は ne4j_pg-neo4j-1
ということがわかる

次にNeo4j のバージョン表示

docker exec -it ne4j_pg-neo4j-1 neo4j --version

を実行すれば

5.26.0

とバージョンが表示される

Neo4jのバージョンに対応するAPOCをGitHubリリースページからダウンロード

今回は
apoc-5.26.0-core.jar
をダウンロード

これを plugins ディレクトリに配置する

mv ~/Downloads/apoc-5.26.0-core.jar plugins 

次にコンテナ再起動

docker compose down
docker compose up -d

次に
http://localhost:7474
へアクセス

CALL apoc.help('apoc')

を実行し
APOCが利用可能になっていることを確認

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です