From 9f480986faac2c7eecf85803f2643c4957dc5285 Mon Sep 17 00:00:00 2001 From: anthonyrawlins Date: Wed, 1 Oct 2025 08:49:37 +1000 Subject: [PATCH] Deprecate Alpine-based Dockerfile to prevent glibc compatibility issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes: - Renamed Dockerfile.simple → Dockerfile.simple.DEPRECATED - Added prominent warning about Alpine/musl libc incompatibility - Updated Makefile docker-agent target to use Dockerfile.ubuntu - Added production deployment notes in Makefile - Updated docker-compose.yml with LightRAG environment variables Reason: The chorus-agent binary built with 'make build-agent' is linked against glibc and cannot run on Alpine's musl libc. This causes the runtime error: "exec /app/chorus-agent: no such file or directory" Production deployments MUST use Dockerfile.ubuntu for glibc compatibility. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- ...erfile.simple => Dockerfile.simple.DEPRECATED | 16 ++++++++++++++++ Makefile | 5 ++++- docker/docker-compose.yml | 9 ++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) rename Dockerfile.simple => Dockerfile.simple.DEPRECATED (65%) diff --git a/Dockerfile.simple b/Dockerfile.simple.DEPRECATED similarity index 65% rename from Dockerfile.simple rename to Dockerfile.simple.DEPRECATED index cf59a20..2130c1a 100644 --- a/Dockerfile.simple +++ b/Dockerfile.simple.DEPRECATED @@ -1,3 +1,19 @@ +# ⚠️ DEPRECATED: DO NOT USE THIS DOCKERFILE ⚠️ +# +# This Alpine-based Dockerfile is INCOMPATIBLE with the chorus-agent binary +# built by 'make build-agent'. The binary is compiled with glibc dependencies +# and will NOT run on Alpine's musl libc. +# +# ERROR when used: "exec /app/chorus-agent: no such file or directory" +# +# ✅ USE Dockerfile.ubuntu INSTEAD +# +# This file is kept for reference only and should not be used for builds. +# Last failed: 2025-10-01 +# Reason: Alpine musl libc incompatibility with glibc-linked binary +# +# ------------------------------------------------------------------- + # CHORUS - Simple Docker image using pre-built binary FROM alpine:3.18 diff --git a/Makefile b/Makefile index f2e4d57..756404f 100644 --- a/Makefile +++ b/Makefile @@ -90,10 +90,13 @@ run-hap: build-hap ./$(BUILD_DIR)/$(BINARY_NAME_HAP) # Docker builds +# NOTE: Always use Dockerfile.ubuntu for production builds! +# Dockerfile.simple.DEPRECATED uses Alpine which is incompatible with glibc-linked binaries .PHONY: docker-agent docker-agent: @echo "🐳 Building Docker image for CHORUS agent..." - docker build -f docker/Dockerfile.agent -t chorus-agent:$(VERSION) . + docker build -f Dockerfile.ubuntu -t chorus-agent:$(VERSION) . + @echo "⚠️ IMPORTANT: Production images MUST use Dockerfile.ubuntu (glibc compatibility)" .PHONY: docker-hap docker-hap: diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 8ad086d..150ca5c 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -56,7 +56,14 @@ services: # Model configuration - CHORUS_MODELS=${CHORUS_MODELS:-meta/llama-3.1-8b-instruct} - CHORUS_DEFAULT_REASONING_MODEL=${CHORUS_DEFAULT_REASONING_MODEL:-meta/llama-3.1-8b-instruct} - + + # LightRAG configuration (optional RAG enhancement) + - CHORUS_LIGHTRAG_ENABLED=${CHORUS_LIGHTRAG_ENABLED:-false} + - CHORUS_LIGHTRAG_BASE_URL=${CHORUS_LIGHTRAG_BASE_URL:-http://lightrag:9621} + - CHORUS_LIGHTRAG_TIMEOUT=${CHORUS_LIGHTRAG_TIMEOUT:-30s} + - CHORUS_LIGHTRAG_API_KEY=${CHORUS_LIGHTRAG_API_KEY:-} + - CHORUS_LIGHTRAG_DEFAULT_MODE=${CHORUS_LIGHTRAG_DEFAULT_MODE:-hybrid} + # Logging configuration - LOG_LEVEL=${LOG_LEVEL:-info} - LOG_FORMAT=${LOG_FORMAT:-structured}