2

So, I have this panel app on a .ypnb, that runs fine and comunicates to weaviate on port 8080 here's the working docker compose.yaml of the db:

---
version: '3.4'
services:
  weaviate:
    command:
    - --host
    - 0.0.0.0
    - --port
    - '8080'
    - --scheme
    - http
    image: semitechnologies/weaviate:1.19.6
    ports:
    - 8080:8080
    restart: on-failure:0
    environment:
      TRANSFORMERS_INFERENCE_API: 'http://t2v-transformers:8080'
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'text2vec-transformers'
      ENABLE_MODULES: 'text2vec-transformers'
      CLUSTER_HOSTNAME: 'node1'
  t2v-transformers:
    image: semitechnologies/transformers-inference:sentence-transformers-paraphrase-multilingual-MiniLM-L12-v2
    environment:
      ENABLE_CUDA: '0'
...

And here is my attempt to dockerize the app:

version: '3.4'
services:
  weaviate:
    command:
    - --host
    - 0.0.0.0
    - --port
    - '8080'
    - --scheme
    - http
    image: semitechnologies/weaviate:1.19.6
    ports:
    - 8080:8080
    restart: on-failure:0
    environment:
      TRANSFORMERS_INFERENCE_API: 'http://t2v-transformers:8080'
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'text2vec-transformers'
      ENABLE_MODULES: 'text2vec-transformers'
      CLUSTER_HOSTNAME: 'node1'
    networks:
      - my-network

  t2v-transformers:
    image: semitechnologies/transformers-inference:sentence-transformers-paraphrase-multilingual-MiniLM-L12-v2
    environment:
      ENABLE_CUDA: '0'
    networks:
      - my-network

  buscahibrida:
    build: .
    container_name: buscahibrida-container
    command: panel serve ./Main.ipynb --address 0.0.0.0 --port 5006
    ports: 
      - 5006:5006
    volumes:
      - .:/buscahibrida
    networks:
      - my-network

networks:
  my-network:

But it doesn't work, the model doesn't seem to communicate with weaviate and weaviate doesn't communicate with the app.

app log:

2023-06-20 15:21:05 weaviate.exceptions.WeaviateStartUpError: Weaviate did not start up in 25 seconds. Either the Weaviate URL http://localhost:8080 is wrong or Weaviate did not start up in the interval given in 'startup_period'.

2023-06-20 15:13:00 2023-06-20 18:13:00,866 Module <module 'bokeh_app_85fa1142d9944273bada8f8f2c204602' from '/buscahibrida/Main.ipynb'> has extra unexpected referrers! This could indicate a serious memory leak. Extra referrers: [<cell at 0x7fc32556ace0: module object at 0x7fc32611e4d0>]

weaviate log:

2023-06-20 11:56:05 {"action":"transformer_remote_wait_for_startup","error":"send check ready request: Get \"http://t2v-transformers:8080/.well-known/ready\": dial tcp 172.21.0.2:8080: connect: connection refused","level":"warning","msg":"transformer remote inference service not ready","time":"2023-06-20T14:56:05Z"}

please help, I'm ready to give up

I messed around with the .yaml file which the source of the problem is apparently, but my experience is limited.

Dev Bhuyan
  • 541
  • 5
  • 19

1 Answers1

1

2023-06-20 15:21:05 weaviate.exceptions.WeaviateStartUpError: Weaviate did not start up in 25 seconds. Either the Weaviate URL http://localhost:8080 is wrong or Weaviate did not start up in the interval given in 'startup_period'.

Why is your code trying to connecto to weaviate at http://localhost:8080?

if the buscahibrida service needs to communicate with the weaviate service, it sould be http://weaviate:8080

hsm207
  • 471
  • 2
  • 4
  • the code is trying to connect to localhost because I don't really know what I'm doing. Changing it to http://weaviate:8080 seems to have worked, thank you very much! now docker running too is slow, but I guess thats another problem right? anyway, where can learn more about the difference between http://localhost:8080 and http://weaviate:8080 ? – Geraldo Francisco Jun 21 '23 at 13:15
  • @GeraldoFrancisco glad it helped. Best place to learn about the difference between localhost:8080 and weaviate:8080 is the docker docs on networking. To get started, read https://docs.docker.com/compose/networking/. Also, please mark this answer as solved. – hsm207 Jun 21 '23 at 23:09