如何在构建阶段向Neo4j Docker容器添加插件,而不是在容器运行时下载插件?

问题描述

我需要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"]' 部分

将在容器运行时下载列出的插件并安装它们。

但是,我必须在受限的环境中运行此容器,并且我无法访问Internet。 我无法在容器运行时下载插件

**我该怎么做才能在构建阶段添加这些插件,以便它们随映像一起准备好? **

解决方法

您可以尝试在不受限制的环境中构建和部署docker,安装所有内容,然后:

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

此后,您可以将该映像带到受限的(没有Internet)环境中,并通过以下方式进行部署:

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