I want to retain my Weaviate data even If I restart my docker container

Hi!
I am using weaviate via docker container
Here is my docker code

netnanny-weaviate:
    container_name: netnanny-weaviate
    image: semitechnologies/weaviate:latest
    ports:
      - "8080:8080"
      - "50051:50051"
    environment:
      QUERY_DEFAULTS_LIMIT: '10'
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: /var/lib/weaviate
    volumes:
      - ./weaviate_data:/var/lib/weaviate
    networks:
      - netnanny 

If I keep

 PERSISTENCE_DATA_PATH: './data'

and

volumes:
      - weaviate_data:/var/lib/weaviate

I am losing data stored in “weaviate_data” folder If I restart my docker container.

And If I keep

PERSISTENCE_DATA_PATH: '/var/lib/weaviate'

And

volumes:
      - weaviate_data:/var/lib/weaviate

I am getting this error

{“build_git_commit”:“258edad”,“build_go_version”:“go1.22.11”,“build_image_tag”:“1.25.30”,“build_wv_version”:“1.25.30”,“level”:“info”,“msg”:“attempting to join”,“remoteNodes”:[“172.27.0.2:8300”],“time”:“2025-02-20T07:02:09Z”}
{“build_git_commit”:“258edad”,“build_go_version”:“go1.22.11”,“build_image_tag”:“1.25.30”,“build_wv_version”:“1.25.30”,“level”:“info”,“msg”:“attempted to join and failed”,“remoteNode”:“172.27.0.2:8300”,“status”:8,“time”:“2025-02-20T07:02:09Z”} .

Could you please let me know what I am doing wrong here. My only aim is I don’t want to lose the data If I restart my docker container.
Thank you

hi @Jotheraj_kori !!

Welcome to our community :hugs:

PERSISTENCE_DATA_PATH will tell Weaviate where the data will be stored.

As you are running Docker, you need to make sure that this folder will be mounted as volume.

this docker compose:

services:
  netnanny-weaviate:
      container_name: netnanny-weaviate
      image: semitechnologies/weaviate:latest
      ports:
        - "8080:8080"
        - "50051:50051"
      environment:
        QUERY_DEFAULTS_LIMIT: '10'
        AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
        PERSISTENCE_DATA_PATH: /var/lib/weaviate
      volumes:
        - ./weaviate_data:/var/lib/weaviate

have worked for me :thinking:

Notice that Weaviate content will not be stored at a folder called weaviate_data that will be side by side with the docker compose.yaml

Let me know if that helps!

THanks!

Hi @DudaNogueira

Thank you for response
I have modified the code as per your suggestion.
Here is my code

netnanny-weaviate:
    container_name: netnanny-weaviate
    image: semitechnologies/weaviate:latest
    ports:
      - "8080:8080"
      - "50051:50051"
    environment:
      QUERY_DEFAULTS_LIMIT: '20' 
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
    volumes:
      - ./weaviate_data:/var/lib/weaviate 
    networks:
      - netnanny 

But Still I am facing some issue .
when I checked the logs of container this is what I am getting “attempted to join and failed”

Thank you!

Oh! I see. That’s only an info message.

Because this cluster is a single node, you can ignore it :slight_smile:

With this docker-compose, were you able to retain the data?