# CHORUS - Ubuntu-based Docker image for glibc compatibility FROM ubuntu:22.04 # Install runtime dependencies RUN apt-get update && apt-get install -y \ ca-certificates \ tzdata \ curl \ && rm -rf /var/lib/apt/lists/* # Create non-root user for security RUN groupadd -g 1000 chorus && \ useradd -u 1000 -g chorus -s /bin/bash -d /home/chorus -m chorus # Create application directories RUN mkdir -p /app/data && \ chown -R chorus:chorus /app # Copy pre-built binary from build directory 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 # 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"]