Files
CHORUS/Dockerfile.simple.DEPRECATED
anthonyrawlins 9f480986fa 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>
2025-10-01 08:49:37 +10:00

60 lines
1.7 KiB
Docker

# ⚠️ 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
# Install runtime dependencies
RUN apk --no-cache add \
ca-certificates \
tzdata \
curl
# Create non-root user for security
RUN addgroup -g 1000 chorus && \
adduser -u 1000 -G chorus -s /bin/sh -D chorus
# Create application directories
RUN mkdir -p /app/data && \
chown -R chorus:chorus /app
# Copy pre-built binary from build directory (ensure it exists and is the correct one)
COPY build/chorus-agent /app/chorus-agent
RUN chmod +x /app/chorus-agent && chown chorus:chorus /app/chorus-agent
# Switch to non-root user
USER chorus
WORKDIR /app
# Note: Using correct chorus-agent binary built with 'make build-agent'
# Expose ports
EXPOSE 8080 8081 9000
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8081/health || exit 1
# Set default environment variables
ENV LOG_LEVEL=info \
LOG_FORMAT=structured \
CHORUS_BIND_ADDRESS=0.0.0.0 \
CHORUS_API_PORT=8080 \
CHORUS_HEALTH_PORT=8081 \
CHORUS_P2P_PORT=9000
# Start CHORUS
ENTRYPOINT ["/app/chorus-agent"]