Docker 容器中的 Solr 无法使用持久数据存储

问题描述 投票:0回答:2

我有一个 Solr 后端,我想与 Flask 前端一起使用。我计划使用

docker-compose
在 Docker 中运行两者。

我的

docker-compose.yml
的相关部分如下所示:

version: '3'

services:

  solr:
    image: solr
    ports:
     - "8983:8983"
    volumes:
      - ./data:/var/solr/
    entrypoint:
    - bash
    - "-c"
    - "precreate-core stable; precreate-core unstable; precreate-core archive; exec solr -f"

[...]

volumes:
  data:

它在主机上创建一个持久的

./data
目录,该目录安装在来宾上的
/var/solr
。但是,当我尝试运行它时:

pc% docker-compose up              
[+] Running 2/0
 ⠿ Container src-solr-1      Recreated
 ⠿ Container src-frontend-1  Recreated
Attaching to src-frontend-1, src-solr-1
src-solr-1      | Executing /opt/solr/docker/scripts/precreate-core stable
src-solr-1      | cp: cannot create directory '/var/solr/data/stable': No such file or directory
src-solr-1      | Executing /opt/solr/docker/scripts/precreate-core unstable
src-solr-1      | Executing /opt/solr/docker/scripts/precreate-core archive
src-solr-1      | cp: cannot create directory '/var/solr/data/unstable': No such file or directory
src-solr-1      | cp: cannot create directory '/var/solr/data/archive': No such file or directory
src-solr-1      | 
src-solr-1      | Solr home directory /var/solr/data not found!
src-solr-1      | 
src-solr-1 exited with code 1
src-frontend-1 exited with code 0

./data
文件夹保持为空。

我已经将其

chown
编辑为
8983:8983
,所以这不应该是权限问题。

docker docker-compose solr
2个回答
1
投票

错误消息抱怨 /var/solr 中缺少

data
目录 - 而不是 /var/solr 本身丢失。您必须首先创建
/data
目录,然后在该目录中创建核心。


0
投票

我已经用

docker run
启动了容器,我的问题是没有错误输出

docker run -d -v "./solrdata:/var/solr" -p 8983:8983 --name my_solr solr solr-precreate gettingstarted

我可以看出它失败了,因为

docker ps -a
STATUS 立即退出。
docker logs
有助于查看错误

docker logs my_solr
Cannot write to /var/solr as 8983:8983
drwxr-xr-x. 1 1000 1000 0 Feb 20 01:57 /var/solr

然后,这就解决了

sudo chown 8983:8983 solrdata/

不完全相同的问题,只是说日志有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.