# Use the official Milvus image as the base image FROM milvusdb/milvus:v2.4.5 # Create necessary directories RUN mkdir -p /var/lib/milvus /milvus/configs # Create the embedEtcd.yaml file # RUN echo "listen-client-urls: http://0.0.0.0:2379 # advertise-client-urls: http://0.0.0.0:2379 # quota-backend-bytes: 4294967296 # auto-compaction-mode: revision # auto-compaction-retention: '1000'" > /milvus/configs/embedEtcd.yaml # # Create the user.yaml file # RUN echo "# Extra config to override default milvus.yaml" > /milvus/configs/user.yaml # Set environment variables ENV ETCD_USE_EMBED=true ENV ETCD_DATA_DIR=/var/lib/milvus/etcd # ENV ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml ENV COMMON_STORAGETYPE=local # Expose necessary ports EXPOSE 19530 9091 2379 # Health check configuration HEALTHCHECK --interval=30s --timeout=20s --start-period=90s --retries=3 \ CMD curl -f http://localhost:9091/healthz || exit 1 # Command to run Milvus standalone CMD ["milvus", "run", "standalone"]