I have a docker image based on semitechnologies/weaviate stored on AWS Elastic Container Registry, and I'm trying to deploy it as a multi-node setup using AppRunner.
My problem is that the service never actually starts... Regardless of whether I set the network endopoint to public or private VPC based, I'm getting an IP address related error like this:
03-19-2023 10:01:23 PM {"action":"startup","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":"2023-03-19T21:01:23Z"}
03-19-2023 10:01:23 PM {"action":"memberlist_init","bind_port":7946,"error":"Failed to get final advertise address: No private IP address found, and explicit IP not provided",...
Based on what I've seen, this is an error specific to WEAVIATE... Here is the Dockerfile based on which I created the image:
FROM semitechnologies/weaviate:1.17.4
ENV QUERY_DEFAULTS_LIMIT=25
ENV AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
ENV PERSISTENCE_DATA_PATH=/var/lib/weaviate
ENV DEFAULT_VECTORIZER_MODULE=text2vec-openai
ENV ENABLE_MODULES=text2vec-openai
ENV CLUSTER_HOSTNAME='weaviate-node1'
ENV CLUSTER_GOSSIP_BIND_PORT=7946
ENV CLUSTER_DATA_BIND_PORT=7947
COPY ./weaviate-vectors /var/lib/weaviate
EXPOSE 8080 7946 7947
CMD ["--host", "0.0.0.0", "--port", "8080", "--scheme", "http"]
I've tried various configurations on AWS (e.g., public endpoint, private VPC based endpoint with a host address from its CIDR block), and I've been searching everywhere for an environment variable for the "member list advertise address", to no avail.