Как добавить плагины в контейнер Neo4j Docker на этапе сборки вместо повторной загрузки плагинов при запуске контейнера?

#docker #neo4j #neo4j-plugin

#docker #neo4j #neo4j-plugin

Вопрос:

Мне нужно, чтобы мой сервис neo4j использовал несколько плагинов. Мой файл сборки Neo4j Docker :

 FROM neo4j:3.5.14
ENV NEO4J_AUTH='neo4j/password'
ENV NEO4J_ACCEPT_LICENSE_AGREEMENT='yes'
ENV NEO4JLABS_PLUGINS='["apoc", "graph-algorithms"]'
RUN echo "dbms.security.procedures.unrestricted=algo.*" >> ./conf/neo4j.conf
  

Часть ENV NEO4JLABS_PLUGINS='["apoc", "graph-algorithms"]'

загрузит перечисленные плагины при запуске контейнера и установит их.

Но я должен запустить этот контейнер в ограниченной среде, и у меня нет доступа в Интернет. Я не могу загрузить плагины при запуске контейнера.

** Что я могу сделать, чтобы добавить эти плагины на самом этапе сборки, чтобы они были готовы вместе с изображением? **

Ответ №1:

Вы можете попробовать собрать и развернуть свой docker в неограниченной среде, установить все, а затем:

 docker commit your-docker your-new-image-with-all-installed
docker save your-new-image-with-all-installed > your-image.tar
  

После этого вы можете перенести этот образ в свою ограниченную среду (без Интернета) и развернуть с:

 docker load < your-image.tar
docker run ...