I need to install plugins in my neo4j container, and this is my build file:
ENV NEO4JLABS_PLUGINS='["apoc", "graph-algorithms"]'
RUN echo "dbms.security.procedures.unrestricted=algo.*" >> ./conf/neo4j.conf
ENV NEO4JLABS_PLUGINS='["apoc", "graph-algorithms"]' part should download and install the plugins at container run.
However, I have to run this container in a restricted environment, with no internet access. So, I cannot rely on the download and install on container run.
How can i download and install the plugins at the docker image build phase, so that the plugins come ready with image and no further download is required ?
You will need to identify the jar versions you need, and download them in advance. Also, this means you won't use NEO4JLABS_PLUGIN (it is dynamic and pulls from the internet).
Identify the versions you need, download and put them in the container's plugin directory.
For example the last time I did it that way I used these jars (these may NOT be the versions you need)
I prefer using NEO4JLABS_PLUGIN but sometimes the json NEO4JLABS_PLUGIN uses isn't setup with the latest release jar information, yet... So I retain the wget's in my script for those times when I switch back to manually fetching the jars.
I map the plugins directory in the container to a host folder and put the jars in there...