Docker Hub私有存储库:无法在私有存储库中推送Solr Core文件

时间:2020-07-04 22:00:12

标签: docker solr dockerhub solr8

我是Docker的新手。我的docker桌面在Windows 10上运行。我必须在docker容器中运行solr,然后将其推送到docker private repository hub。

我正在关注文章https://github.com/docker-solr/docker-solr

我有一个在Linux上使用docker容器运行的azure Web应用程序-该应用程序将从docker hub存储库私有调用docker映像。

http://solrdockerwebapp.azurewebsites.net/solr/#/--this是在azure上运行的Web应用。

我已使用PowerShell命令在Docker桌面中下载了solr。

 docker pull solr:latest 
 docker run -d -p 8983:8983 --name my_solr solr:v1

我在本地浏览器http:// localhost:8983 / solr /#中检查它是否正常运行。现在,我创建一个新的Solr核心文件,该文件在solrdata / data / core_demo文件夹下生成。

但是,如果我将映像推送到docker私有存储库中,则该核心文件不会增加。

下面是我的docker文件

FROM openjdk:11-jre 
ARG SOLR_VERSION="8.5.2" 
ADD data/core_demo /opt/solr-8.5.2/server/solr/configsets 
WORKDIR /opt/solr 
ENTRYPOINT ["docker-entrypoint.sh"] 
CMD ["solr-foreground"]

构建并提交图像。

docker commit my_solr myprivaterepo/solr:latest 
docker push myprivaterepo/solr:latest 

问题是我的核心文件在本地计算机磁盘下生成

D:/ DockerFolder / var / solr / data / core_demo

但是在将映像推送到docker hub之后,这些核心文件和文件夹未在此处累加。因此,Azure solr Web应用程序仅运行solr,而没有任何核心文件。

任何建议或帮助都会很有帮助。

1 个答案:

答案 0 :(得分:1)

我不是Docker专家,在查看您的帖子后,我可以建议您使用以下命令:

  1. 在docker桌面上创建卷
docker volume create var
  1. 更改dockerfile中的行
From solr:latest 
  1. 在Docker文件中使用COPY替换ADD,如下所示:
COPY  var/data var/solr/server/solr/data
  1. 现在创建图像
docker build --tag solr:latest . 
  1. Docker使用一个合适的容器名称运行新建的映像
docker run -d -v "$PWD/var:/var/solr" -p 8983:8983 --name Your_solrContainer solr:latest solr-precreate gettingstarted 

6。在此Docker集线器中将此操作提交并按您在帖子中提到的那样进行推送

docker commit Your_solrContainer myprivaterepo/solr:latest 
docker push myprivaterepo/solr:latest 

现在,我希望您的Solr核心数据已安装,并且您将能够在运行的Web应用程序中看到它们。唯一缺少的是容量,因此数据可以保留在您的Docker映像上。