Using containerized Weaviate with Semantic Kernel

  • I am (basically) running 2 docker containers on my W11 system: Weaviate, and my dotnet application using Microsoft’s Semantic Kernel.

docker-compose.yml (truncated)

version: '3.7'

services:
  app:
    container_name: app
    image: webgrip/app
    ports:
    - 9100:9100
    - 9101:9101
    build:
      context: .
      dockerfile: Dockerfile
    env_file: .env

docker-compose.weaviate.yaml(truncated)


version: '3.4'
services:
  weaviate:
    command:
    - --host
    - 0.0.0.0
    - --port
    - '8080'
    - --scheme
    - http
    image: semitechnologies/weaviate:1.20.0
    ports:
    - 9001:8080
    restart: on-failure:0
    env_file:
      - .env
    environment:
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'
      AUTHENTICATION_APIKEY_ENABLED: 'true'
      AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'my-secret-key'
      AUTHENTICATION_APIKEY_USERS: 'john@doe.nl'
      AUTHORIZATION_ADMINLIST_ENABLED: 'true'
      AUTHORIZATION_ADMINLIST_USERS: 'john@doe.nl'

When any kind of request is made to the Weaviate container from my application’s container, the connection is refused.

When I change AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED to true, and make a request, I get this line to my log:

{"action":"restapi_request","level":"debug","method":"POST","msg":"received HTTP request","time":"2023-07-11T12:33:07Z","url":{"Scheme":"","Opaque":"","User":null,"Host":"","Path":"/schema","RawPath":"","OmitHost":false,"ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""}}

User: Null tells me that somehow the api key I’ve defined in my application’s (The same one as in AUTHENTICATION_APIKEY_ALLOWED_KEYS) isn’t working? But I have no idea how to continue debugging this. Maybe someone else has an idea?

Hi @Ryangr0 - sorry for the late reply. I don’t know myself, but I’ve passed it onto the team. Hopefully someone can get back to you soon.