Containerize MCP tool services
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
[[ $EUID -eq 0 ]] || { echo "Bitte als root ausführen." >&2; exit 1; }
|
||||
|
||||
MCP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
COMPOSE=(docker compose -f "$MCP_DIR/compose.yaml")
|
||||
export SEARXNG_SETTINGS_FILE="${SEARXNG_SETTINGS_FILE:-$MCP_DIR/../web-search/searxng-settings.yml}"
|
||||
|
||||
[[ -s $SEARXNG_SETTINGS_FILE ]] || {
|
||||
echo "SearXNG-Konfiguration fehlt: $SEARXNG_SETTINGS_FILE" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
profiles=()
|
||||
if [[ -s /etc/mike-ai/homeassistant-admin-mcp.env ]]; then
|
||||
profiles+=(--profile homeassistant)
|
||||
else
|
||||
echo "Home Assistant bleibt aus: Secret-Datei fehlt."
|
||||
fi
|
||||
if [[ -s /etc/mike-ai/arr-mcp.env ]]; then
|
||||
profiles+=(--profile arr)
|
||||
else
|
||||
echo "ARR bleibt aus: Secret-Datei fehlt."
|
||||
fi
|
||||
if [[ -s /etc/mike-ai/runraid/.env && -x /usr/local/bin/runraid ]]; then
|
||||
profiles+=(--profile unraid)
|
||||
else
|
||||
echo "Unraid bleibt aus: runraid 0.4.2 oder Secret-Datei fehlt."
|
||||
fi
|
||||
|
||||
# TinySearch keeps the embedding bundle outside the container. Download it
|
||||
# once on a fresh host; subsequent rebuilds reuse the named volume.
|
||||
docker volume create mike-ai-tools_tinysearch-models >/dev/null
|
||||
tiny_image="marcellm01/tinysearch@sha256:5a03d5a1f1b0fabe48f2a26e05db4a84bcb611106a57ec51e42db4549976aa9c"
|
||||
if ! docker run --rm --entrypoint test \
|
||||
-v mike-ai-tools_tinysearch-models:/data/models "$tiny_image" \
|
||||
-f /data/models/all-minilm-l6-v2-onnx/model.onnx; then
|
||||
echo "TinySearch-Modell wird einmalig geladen."
|
||||
docker run --rm -v mike-ai-tools_tinysearch-models:/data/models \
|
||||
"$tiny_image" tinysearch setup
|
||||
fi
|
||||
|
||||
"${COMPOSE[@]}" "${profiles[@]}" up -d --build
|
||||
|
||||
for webui in mike-ai-open-webui Open-WebUI; do
|
||||
if docker container inspect "$webui" >/dev/null 2>&1; then
|
||||
docker network connect mike-ai-tools "$webui" 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
|
||||
"${COMPOSE[@]}" "${profiles[@]}" ps
|
||||
Reference in New Issue
Block a user