Neo4jのインストール
https://neo4j.com/docs/getting-started/whats-neo4j/
で
3種類あるようなので
neo4jの デスクトップ、インストールタイプ、docker での必要スペックをまとめました
M1MacbookAir 16GBだと動かせそうなのは docker
これで動かすようにする
Neo4j の学習環境を Docker で構築する
によれば
NEO4J_AUTH=none にすることで、認証なしに環境へログインができるようになる
とりあえずdocker がインストールされていないので
これを先に入れる
Docker Desktopのインストール
https://www.docker.com/products/docker-desktop/
へアクセス
Get started をクリック
Download Docker Desktop をマウスオーバーすると
Download for Mac Apple Silicon
が表示されるのでクリック
これでダウンロードされる
ダウンロード完了したらダブルクリックで
Applicationにdocker をドラッグする
これでアプリを起動すると
Docker Subscription Service Agreement By selecting accept, you agree to the Subscription Service Agreement, the Docker Data Processing Agreement, and the Data Privacy Policy. Commercial use of Docker Desktop at a company of more than 250 employees OR more than $10 million in annual revenue requires a paid subscription (Pro, Team, or Business). See subscription details
と表示されるので意味を調べる
Docker サブスクリプション サービス契約
[同意する] を選択すると、サブスクリプション サービス契約、Docker データ処理契約、およびデータ プライバシー ポリシーに同意したことになります。従業員数が 250 人を超える企業、または年間収益が 1,000 万ドルを超える企業で Docker Desktop を商用利用するには、有料のサブスクリプション (Pro、Team、または Business) が必要です。サブスクリプションの詳細を参照
とのこと
この日本語で検索したら
https://oopsoop.com/install-docker/
MacにDocker Desktopをインストールする手順
が出てきた
とりあえずサイトを参考に
Accept をクリックし
Use recommended settings (requires password)
のままにして
Finishをクリック
次に Sign In か Sign up の画面になるけど
アカウント登録をしなくてもDockerの基本的な機能は使える
とのことなのでSkip にした
次にターミナルで
docker -v
でバージョンを確認したら
Docker version 27.3.1, build ce12230
となったので
まずはインストール成功
Neo4jのDockerイメージを確認
docker search neo4j
NAME DESCRIPTION STARS OFFICIAL neo4j Neo4j is a highly scalable, robust native gr… 1290 [OK] bitnami/neo4j Bitnami container image for Neo4j 13 bitnamicharts/neo4j Bitnami Helm chart for Neo4j 0 vulhub/neo4j 0 ocelotsocialnetwork/neo4j 0 neo4j/neo4j-experimental Experimental Neo4j Docker images 10 neo4j/neo4j-admin Neo4j database administration tool. 1 neo4j/helm-charts-backup This repo will hold the docker image used by… 0 neo4j/neo4j-arm64-experimental Experimental Neo4j images for the ARM64 arch… 5 neo4j/helm-charts-reverse-proxy this repo holds the docker image for neo4j r… 0 neo4j/neo4j-ops-manager-server Neo4j Ops Manager server application 0 neo4j/neo4j-ops-manager-agent Neo4j Ops Manager agent is to be deployed on… 0 amd64/neo4j Neo4j is a highly scalable, robust native gr… 0 neo4j/helm-charts-operations Neo4j helm chart operations which allows you… 0 phenompeople/neo4j Neo4j is a highly scalable, robust native gr… 1 frodenas/neo4j A Docker Image for Neo4j 8 rapydo/neo4j 0 tpires/neo4j Neo4j is a highly scalable, robust (fully AC… 82 c12e/neo4j 0 arm64v8/neo4j Neo4j is a highly scalable, robust native gr… 0 2045c6c4/neo4j 0 trollin/neo4j 0 harshit9398/neo4j Customized Neo4j image for importing data fr… 0 statisticsnorway/neo4j 0 cluedin/neo4j
0
となる
や
Chat got では
Docker Hubに登録しておくと、公式イメージを簡単にダウンロードできる
とのことなので
先に登録をする
結局登録することになった
https://hub.docker.com/
へアクセス
しかし既に登録されていると出る
おそらく昔ドットインストールで dockerやった時に登録している
とりあえずこれで登録はできているので
次にdocker イメージの取得
しかし
docker pull neo4j
を実行すると
Using default tag: latest Cannot connect to the Docker daemon at unix:///Users/snowpool/.docker/run/docker.sock. Is the docker daemon running?
となる
原因を調べたら
M1 Macでは、Docker Desktopを手動で起動する必要があるらしい
再度 Docker Desktop を起動し
docker pull neo4j
を実行したら
Using default tag: latest latest: Pulling from library/neo4j b8bfdadce121: Download complete c783cffde723: Download complete f549d6f5d7d3: Download complete 46120a0c7324: Download complete 879a6187682f: Download complete 4f4fb700ef54: Download complete Digest: sha256:411e532d5c9892e7c955b4e631da423af41ede6a683a0de02c93876b7509c2db Status: Downloaded newer image for neo4j:latest docker.io/library/neo4j:latest
となった
とりあえずイメージ取得はできたが起動でわからないことがあるので
GPTで調べる
docker compose コマンドで Neo4j を起動するのと
docker run –name neo4j \ -p 7474:7474 -p 7687:7687 \ -e NEO4J_AUTH=neo4j/testpassword \ -v $HOME/neo4j/data:/data \ neo4j で起動する この違いは?`docker compose` コマンドと `docker run` コマンドを使った起動方法の違いを説明します。それぞれの方法には特徴やメリットがあり、使用シーンによって使い分けることができます。
—
### **1. `docker run` を使った起動**
#### **特徴**
– 単一のコンテナを直接起動するため、簡単で軽量。
– 起動コマンド内で全ての設定(ポートマッピング、環境変数、ボリュームなど)を指定します。#### **メリット**
– **シンプル**: コマンド一つで起動でき、設定ファイルが不要。
– **素早くテスト可能**: 手早く試したい場合に便利。#### **デメリット**
– **複雑な設定が困難**: 設定が多い場合、コマンドが煩雑になりやすい。
– **再利用性が低い**: 毎回設定を入力する必要があり、同じ設定で複数環境を管理するのは難しい。
– **スケーリングが難しい**: 他のサービスとの連携が必要な場合には不向き。—
### **2. `docker compose` を使った起動**
#### **特徴**
– 複数のコンテナやサービスを `docker-compose.yml` という設定ファイルで一括管理します。
– ネットワーク設定や環境変数、ボリュームなどをファイルで定義します。#### **例: `docker-compose.yml` ファイル**
“`yaml
version: ‘3.8’
services:
neo4j:
image: neo4j
container_name: neo4j
ports:
– “7474:7474”
– “7687:7687”
environment:
– NEO4J_AUTH=neo4j/testpassword
volumes:
– $HOME/neo4j/data:/data
“`#### **起動コマンド**
“`bash
docker compose up -d
“`#### **メリット**
– **設定の再利用が簡単**: `docker-compose.yml` ファイルを使い回して環境を再現可能。
– **複数サービスの管理**: 複数のコンテナ(例: Neo4jと関連するアプリケーション)をまとめて起動・停止できる。
– **環境の可搬性**: 設定ファイルを共有すれば、他の環境でも同じ構成で起動可能。
– **スケールしやすい**: 複数インスタンスを簡単に立ち上げたり、複雑なネットワーク設定を扱いやすい。#### **デメリット**
– **初期設定が必要**: `docker-compose.yml` ファイルを作成する手間がある。
– **単体での試験にはやや過剰**: シンプルなコンテナ起動には不要な場合が多い。—
### **具体的な使い分け**
| **シーン** | **`docker run`** | **`docker compose`** |
|————————————|—————————————————|————————————————|
| **シンプルなテストや実験** | 最適 | 過剰な場合がある |
| **複数サービスの起動(例: Neo4j + アプリ)** | 煩雑 | 非常に便利 |
| **設定を何度も再利用する場合** | 毎回コマンド入力が必要 | 設定ファイルで簡単に再利用 |
| **本番環境の準備や運用** | 管理が難しい | 環境構築や管理に最適 |
| **チーム開発や共有環境** | 他者への設定共有が困難 | 設定ファイルで簡単に共有可能 |—
### **結論**
– **単純な用途**: 一回限りのテストや小規模な利用では `docker run` が簡単。
– **再利用性・管理性が重要**: チーム開発や本格的な運用では `docker compose` を使うのがおすすめ。
とりあえず次に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を起動する