docker-compose.yml•1.26 kB
version: '3.8'
services:
neo4j:
image: neo4j:latest
container_name: codebase-neo4j
restart: unless-stopped
ports:
- "7474:7474" # Neo4j Browser
- "7687:7687" # Bolt protocol
environment:
# Authentication
- NEO4J_AUTH=neo4j/PASSWORD
# Memory configuration
- NEO4J_server_memory_heap_initial__size=2G
- NEO4J_server_memory_heap_max__size=4G
- NEO4J_server_memory_pagecache_size=2G
- NEO4J_dbms_memory_transaction_total_max=4G
# Enable APOC procedures
- NEO4J_PLUGINS=["apoc"]
# Allow file imports
- NEO4J_apoc_export_file_enabled=true
- NEO4J_apoc_import_file_enabled=true
- NEO4J_apoc_import_file_use__neo4j__config=true
# Security settings for development
- NEO4J_dbms_security_procedures_unrestricted=apoc.*
volumes:
# Persist data
- neo4j_data:/data
- neo4j_logs:/logs
# Import directory for JSON files
- ./neo4j-import:/var/lib/neo4j/import
healthcheck:
test: ["CMD-SHELL", "cypher-shell -u neo4j -p PASSWORD 'RETURN 1'"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
volumes:
neo4j_data:
neo4j_logs: