Downloaded Plugin (APOC) File Permission
saeedseyfi opened this issue · 5 comments
Expected behaviour:
Neo4j takes ownership of downloaded plugin file after install. Even if the plugin directory is mounted.
Actual behaviour:
Currently if the plugins directory is mounted APOC plugin installation fails during docker compose up:
❯ docker compose up
[+] Running 6/6
⠿ neo4j Pulled 25.0s
⠿ 934ce60d1040 Pull complete 5.7s
⠿ 7af213950f8c Pull complete 21.3s
⠿ 89a47ca77276 Pull complete 21.4s
⠿ 76fb7786289d Pull complete 21.4s
⠿ 2f5e812311c5 Pull complete 22.0s
[+] Running 2/2
⠿ Network reproduce-neo4j-perm_ecosystem_network Created 0.0s
⠿ Container neo4j Created 0.3s
Attaching to neo4j
neo4j | Warning: Folder mounted to "/logs" is not writable from inside container. Changing folder owner to neo4j.
neo4j | Warning: Folder mounted to "/data" is not writable from inside container. Changing folder owner to neo4j.
neo4j | Installing Plugin 'apoc' from /var/lib/neo4j/labs/apoc-*-core.jar to /var/lib/neo4j/plugins/apoc.jar
neo4j | Plugin at '/var/lib/neo4j/plugins/apoc.jar' is not readable
neo4j exited with code 1
docker-compose.yaml
version: '3'
services:
neo4j:
image: neo4j:5-community
container_name: neo4j
ports:
- 7474:7474
- 7473:7473
- 7687:7687
volumes:
- ./neo4j/conf:/var/lib/neo4j/conf
- ./neo4j/data:/var/lib/neo4j/data
- ./neo4j/logs:/var/lib/neo4j/logs
- ./neo4j/import:/var/lib/neo4j/import
- ./neo4j/plugins:/var/lib/neo4j/plugins # problematic
environment:
- NEO4J_server.memory.pagecache.size=1G
- NEO4J_server.memory.heap.max_size=1G
- NEO4J_AUTH=none
- NEO4J_PLUGINS=["apoc"]
networks:
- ecosystem_network
networks:
ecosystem_network:
driver: bridge
Neo4j image tag being used: 5-community
docker version
Client:
Cloud integration: v1.0.29
Version: 20.10.21
API version: 1.41
Go version: go1.18.7
Git commit: baeda1f
Built: Tue Oct 25 18:01:18 2022
OS/Arch: darwin/arm64
Context: default
Experimental: true
Server: Docker Desktop 4.14.1 (91661)
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.18.7
Git commit: 3056208
Built: Tue Oct 25 17:59:41 2022
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.6.9
GitCommit: 1c90a442489720eec95342e1789ee8a5e1b9536f
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker compose version
Docker Compose version v2.12.2
OS
macOs: 13.1 (22C65) Ventura
Apple M1 Max
Darwin SYS 22.2.0 Darwin Kernel Version 22.2.0: Fri Nov 11 02:03:51 PST 2022; root:xnu-8792.61.2~4/RELEASE_ARM64_T6000 arm64
@saeedseyfi I haven't been able to reproduce this locally, the container behaves as expected. It might be that I haven't set up my plugins folder hte same as yours.
What do you get when you run ls -l
on ./neo4j/plugins
on the host computer ? Who owns the plugins folder?
Is there already an apoc.jar file inside the plugins folder before you start docker?
I could reproduce it with Docker version 20.10.22, build 3a2c30b on macOS Monterey 12.6.2.
ls -l
results to -rwx------@
initially. I've tried to set the permission manually via chmod 777
and ls -l
now results in -rwxrwxrwx@
. Then, I tried running docker-compose up
again, and ls -l
reverted back to -rwx------@
.
My teammate whose on Windows Subsystem for Linux (WSL) doesn't experience this issue so my guess is that the problem is specific to macOS.
I have exactly the same issue, and am running on a Apple M2.
I have tried to download the plugin apoc, several different versions, to check if it would work with some version of neo4j between 4.4 and latest. It always replaces the file in existence, replacing the permissions along with it.
neo4j:
image: neo4j:latest
environment:
- NEO4J_AUTH=none
- NEO4J_PLUGINS=["n10s","apoc"]
- NEO4J_server_unmanaged__extension__classes='semantics.extension'='/rdf'
- NEO4J_dbms_security_procedures_unrestricted='semantics.*,apoc.*'
- NEO4J_dbms_security_procedures_allowlist='algo.*,apoc.*,semantics.*'
ports:
- "7474:7474"
- "7687:7687"
volumes:
- "./.neo4j-data:/data:rw"
- "./sia-neo4j/plugins:/plugins:rw"
- "./sia-neo4j-logs:/logs:rw"
...
2023-05-17 13:08:11.770+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.stats.degrees is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.779+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.nodes is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.780+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.relationships is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.781+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.assert is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.781+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.node.indexExists is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.782+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.relationship.indexExists is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.782+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.node.constraintExists is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.783+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.relationship.constraintExists is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.833+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.warmup.run is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.836+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.data is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.837+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.graph is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.837+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.stats is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.838+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.schema is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.838+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.subGraph is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.839+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.data.of is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.840+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.nodeTypeProperties is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.840+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.relTypeProperties is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.842+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.graph.of is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.843+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.graphSample is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.844+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.nodes.count is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.844+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.cypher.type is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.844+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.cypher.isType is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.845+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.meta.cypher.types is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.925+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.properties.distinct is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.926+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.schema.properties.distinctCount is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.964+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.get is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.964+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.delete is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.965+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.link is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.966+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.rels is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.966+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.cycles is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.967+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.collapse is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.967+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.rel.type is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.968+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.id is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.968+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.any.properties is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.968+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.labels is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.969+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.any.property is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.969+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.rel.startNode is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.969+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.rel.endNode is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.970+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.any.isDeleted is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.970+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.relationship.exists is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.970+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.rel.id is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.971+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.degree is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.971+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.relationship.types is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.972+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.isDense is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.972+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.relationships.exist is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.973+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.degree.in is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.973+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.node.degree.out is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.974+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.relationship.types is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.974+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.relationships.exist is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.974+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.nodes.connected is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.997+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.start is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.998+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.stop is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.998+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.drop is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:11.999+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.install is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.000+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.dropAll is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.000+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.show is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.006+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.add is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.006+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.remove is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.007+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.list is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.007+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.resume is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.007+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.removeAll is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.008+0000 WARN [o.n.k.a.p.GlobalProcedures] apoc.trigger.pause is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
2023-05-17 13:08:12.027+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.s3.S3Aws` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials
2023-05-17 13:08:12.028+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.s3.S3Aws$1` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/amazonaws/services/s3/model/S3ObjectInputStream
2023-05-17 13:08:12.029+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.s3.S3OutputStream$S3UploadManager` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/amazonaws/services/s3/AmazonS3
2023-05-17 13:08:12.029+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.s3.S3URLConnection` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/amazonaws/ClientConfiguration
2023-05-17 13:08:12.030+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.google.cloud.GCStorageURLConnection` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/google/cloud/storage/Storage
2023-05-17 13:08:12.037+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.hdfs.HDFSUtils$1` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
2023-05-17 13:08:12.038+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `apoc.util.hdfs.HDFSUtils` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataOutputStream
2023-05-17 13:08:12.083+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.v4.gui.TreeViewer$VariableExtentProvide` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/abego/treelayout/NodeExtentProvider
2023-05-17 13:08:12.083+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.v4.gui.TreePostScriptGenerator` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/abego/treelayout/Configuration
2023-05-17 13:08:12.120+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.v4.gui.TreeViewer` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/abego/treelayout/Configuration
2023-05-17 13:08:12.126+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.v4.gui.TreePostScriptGenerator$VariableExtentProvide` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/abego/treelayout/NodeExtentProvider
2023-05-17 13:08:12.128+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.v4.unicode.UnicodeDataTemplateController` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/ibm/icu/text/UnicodeSet
2023-05-17 13:08:12.148+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.v4.gui.TreeLayoutAdaptor` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/abego/treelayout/TreeForTreeLayout
2023-05-17 13:08:12.599+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.antlr.runtime.tree.DOTTreeGenerator` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/antlr/stringtemplate/StringTemplate
2023-05-17 13:08:12.611+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.GsonJsonProvider` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/google/gson/JsonElement
2023-05-17 13:08:12.613+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonArrayProxy$1` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonValue
2023-05-17 13:08:12.613+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonArrayProxy$2` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonValue
2023-05-17 13:08:12.614+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonArrayProxy` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonArray
2023-05-17 13:08:12.614+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonObjectProxy$1` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonObject
2023-05-17 13:08:12.615+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonObjectProxy` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonObject
2023-05-17 13:08:12.616+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JakartaJsonProvider` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonValue
2023-05-17 13:08:12.617+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.json.JsonOrgJsonProvider` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/json/JSONException
2023-05-17 13:08:12.619+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.GsonMappingProvider$1` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/google/gson/Gson
2023-05-17 13:08:12.619+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.GsonMappingProvider$2` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: com/google/gson/Gson
2023-05-17 13:08:12.620+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonArrayScope` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonValue
2023-05-17 13:08:12.620+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonObjectScope` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonValue
2023-05-17 13:08:12.621+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonStructureScope` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/JsonValue
2023-05-17 13:08:12.621+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonStructureToParserAdapter` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/stream/JsonParser
2023-05-17 13:08:12.622+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `com.jayway.jsonpath.spi.mapper.JakartaMappingProvider` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: jakarta/json/bind/JsonbException
2023-05-17 13:08:13.002+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `META-INF.versions.9.module-info` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: META-INF/versions/9/module-info is not a class because access_flag ACC_MODULE is set
2023-05-17 13:08:13.026+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.apache.commons.logging.impl.AvalonLogger` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/apache/avalon/framework/logger/Logger
2023-05-17 13:08:13.027+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.apache.commons.logging.impl.Log4JLogger` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/apache/log4j/Priority
2023-05-17 13:08:13.028+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load `org.apache.commons.logging.impl.LogKitLogger` from plugin jar `/plugins/apoc.jar`: java.lang.NoClassDefFoundError: org/apache/log/Logger
...
Also on a M1 mac, I can confirm the same issues reported by OP and Luis. Removing the NEO4J_PLUGINS
variable and moving the plugins in manually with the correct permissions allow the container to properly start. In my case the issue was with apoc-core
, using the older apoc
works fine. I was also able to have graph-data-science
download properly and set correct permissions when using the NEO4J_PLUGINS
variable