neo4j / docker-neo4j

Docker Images for the Neo4j Graph Database
Apache License 2.0
320 stars 168 forks source link

Downloaded Plugin (APOC) File Permission #420

Closed saeedseyfi closed 10 months ago

saeedseyfi commented 1 year ago

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 ```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
jennyowen commented 1 year ago

@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?

isotopeee commented 1 year ago

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.

LuisMalhadas commented 1 year ago

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
...
joan7770 commented 1 year ago

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

jennyowen commented 10 months ago

This issue should be fixed by https://github.com/neo4j/docker-neo4j/pull/459 The 5.12.0 and 4.4.26 releases will have the bugfix :+1: