Deprecate Alpine-based Dockerfile to prevent glibc compatibility issues

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 <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-10-01 08:49:37 +10:00
parent 4d424764e5
commit 9f480986fa
3 changed files with 28 additions and 2 deletions

View File

@@ -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

View File

@@ -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:

View File

@@ -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}