Azure deployement with weaviate as sidecar container

I am trying to deploy fastapi app using weaviate service, currently i have setup code locally through docker-compose using openai embeddings, there is no option in azure sidecar container for exposing grpc_port, and that why i am getting
Is Weaviate running and reachable at http://localhost:8080?
everything is correctly configured but no way it is working, is there any way we can run weaviate without requiring grpc port? (also i think azure recently removed yaml file option for multi container and introduced as sidecar container)

attaching screenshot here with for azure side setup

Yep, you’ve run into one of the recent Azure sidecar changes: gRPC ports aren’t exposed in sidecar mode. That’s why your FastAPI app can’t connect over gRPC.

The good news: you don’t actually need gRPC here.

What still works:

  • Weaviate’s REST API on port 8080 remains fully available in sidecar containers.

  • All standard operations (inserts, queries, management) work fine over REST.

What to do:

  • Point your FastAPI client at http://localhost:8080.

  • In Weaviate’s config, set ENABLE_GRPC=false to skip gRPC entirely (avoids startup warnings).

  • Both containers in a sidecar share the same network namespace, so localhost:8080 will be reachable.

Quick check:
Inside your FastAPI container, run:

curl http://localhost:8080/v1/.well-known/ready

If you see a healthy response, your app can talk to Weaviate over REST just fine.

Azure did recently remove the YAML-based multi-container option, so sidecar + REST API is the intended path forward.

now on azure getting as

2025-09-10T08:46:08.2959156Z {“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“level”:“warning”,“log_level_env”:“”,“msg”:“log level not recognized, defaulting to info”,“time”:“2025-09-10T08:46:08Z”}

2025-09-10T08:46:08.2960768Z {“action”:“startup”,“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“level”:“info”,“msg”:“Feature flag LD integration disabled: could not locate WEAVIATE_LD_API_KEY env variable”,“time”:“2025-09-10T08:46:08Z”}

2025-09-10T08:46:08.2960888Z {“action”:“startup”,“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“default_vectorizer_module”:“text2vec-openai”,“level”:“info”,“msg”:“the default vectorizer modules is set to \“text2vec-openai\”, as a result all new schema classes without an explicit vectorizer setting, will use this vectorizer”,“time”:“2025-09-10T08:46:08Z”}

2025-09-10T08:46:08.3059019Z {“action”:“startup”,“auto_schema_enabled”:true,“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“level”:“info”,“msg”:“auto schema enabled setting is set to \“true\””,“time”:“2025-09-10T08:46:08Z”}

2025-09-10T08:46:08.3469539Z {“action”:“memberlist_init”,“bind_port”:7946,“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“error”:“Failed to get final advertise address: No private IP address found, and explicit IP not provided”,“hostname”:“node1”,“level”:“error”,“msg”:“memberlist not created”,“time”:“2025-09-10T08:46:08Z”}

2025-09-10T08:46:08.347004Z {“action”:“startup”,“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“error”:“create member list: Failed to get final advertise address: No private IP address found, and explicit IP not provided”,“level”:“error”,“msg”:“could not init cluster state”,“time”:“2025-09-10T08:46:08Z”}

2025-09-10T08:46:16.6956404Z 2025-09-10 08:46:16,652 app.services ERROR: Failed to connect to Weaviate. Connection to Weaviate failed. Details: Error: [Errno 99] Cannot assign requested address.

2025-09-10T08:46:16.6958252Z Is Weaviate running and reachable at http://localhost:8080?

for local i was using below yml file

using openai

services:

weaviate:

command:

- --host

- 0.0.0.0

- --port

- '8080'

- --scheme

- http

image: cr.weaviate.io/semitechnologies/weaviate:1.30.0

ports:

- 8080:8080

- 50051:50051

volumes:

- weaviate_data:/var/lib/weaviate

restart: on-failure:0

environment:

  QUERY_DEFAULTS_LIMIT: 20000

  AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'

  PERSISTENCE_DATA_PATH: '/var/lib/weaviate'

  DEFAULT_VECTORIZER_MODULE: 'text2vec-openai'

  ENABLE_MODULES: 'text2vec-openai'

  CLUSTER_HOSTNAME: 'node1'

  ENABLE_GRPC: 'false'

  OPENAI_APIKEY: 'sk-proj-0DGPLWqIXNKfVAmt1WB2bu76ZXdTj_ooT3BlbkFJQQ3Uvq1YXyRsRAyD2ZvDy1zIosjD1IUOIzQFnA7g65cridFnRdx3_Guem5A0Nx1PptZewAiwcA'

volumes:

weaviate_data:

i have added these as env variable in sidecar container, what might be the issue

hi @Abhishek_Joshi !

I couldn’t find anything related to ENABLE_GRPC. :thinking:

Also, GRPC is fundamental to a lot of operations.

Regarding the error, Weaviate was not able to be up and running:

2025-09-10T08:46:08.3469539Z {“action”:“memberlist_init”,“bind_port”:7946,“build_git_commit”:“b7b7715”,“build_go_version”:“go1.22.12”,“build_image_tag”:“v1.30.0”,“build_wv_version”:“1.30.0”,“error”:“Failed to get final advertise address: No private IP address found, and explicit IP not provided”,“hostname”:“node1”,“level”:“error”,“msg”:“memberlist not created”,“time”:“2025-09-10T08:46:08Z”}

It seems it was not able to identify itself with a private IP. So your app was not able to connect to it.

Running Weaviate as a sidecar is not something we have explored, to be honest.

1 Like

Thanks for the clarification @DudaNogueira You’re absolutely right I was thinking of a different containerized service that had a gRPC toggle.

Looking at the logs, the core issue is the memberlist clustering initialization failure in the Azure sidecar environment:

"Failed to get final advertise address: No private IP address found, and explicit IP not provided"

Since this is a single-node deployment in a sidecar, the fix is to avoid clustering issues and make sure Weaviate binds cleanly. For Azure sidecars, you can try:

environment:
QUERY_DEFAULTS_LIMIT: 20000
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
DEFAULT_VECTORIZER_MODULE: 'text2vec-openai'
ENABLE_MODULES: 'text2vec-openai' # Single-node clustering config CLUSTER_HOSTNAME: 'node1'
OPENAI_APIKEY: 'your-api-key'

With this configuration, Weaviate will run in single-node mode without trying to initialize clustering. Since both containers share the same localhost network namespace in Azure sidecars, your FastAPI service should be able to connect via:

http://localhost:8080

The clustering error is what’s stopping Weaviate from starting fully, which is why your app couldn’t reach it.