mirror of https://github.com/aliasrobotics/cai.git
75 lines
2.6 KiB
Docker
75 lines
2.6 KiB
Docker
FROM kalilinux/kali-rolling
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Fix Kali GPG Keys
|
|
RUN apt-get update --allow-insecure-repositories && \
|
|
apt-get install -y --no-install-recommends --allow-unauthenticated kali-archive-keyring && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Core system + Python
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
python3 python3-pip python3-dev \
|
|
curl wget git ca-certificates \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install kali-linux-headless (brings most pentesting tools + dependencies)
|
|
# This includes: nmap, nikto, dirb, gobuster, sqlmap, netcat, ssh, etc.
|
|
RUN apt-get update && \
|
|
echo "console-setup console-setup/variant select Latin1 and Latin5 - western Europe and Turkic languages" | debconf-set-selections && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
kali-linux-headless \
|
|
seclists \
|
|
burpsuite \
|
|
default-jre \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Metasploit
|
|
RUN curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > /tmp/msfinstall && \
|
|
chmod 755 /tmp/msfinstall && \
|
|
/tmp/msfinstall && \
|
|
rm /tmp/msfinstall
|
|
|
|
# FIX: pip system-packages warning
|
|
RUN mkdir -p /root/.pip && \
|
|
echo "[global]" > /root/.pip/pip.conf && \
|
|
echo "break-system-packages = true" >> /root/.pip/pip.conf
|
|
|
|
|
|
|
|
WORKDIR /opt/cai
|
|
|
|
# Install CAI
|
|
RUN pip3 install --ignore-installed cai-framework
|
|
|
|
# .env Template (overwritten if .env file present in logs)
|
|
RUN echo 'OPENAI_API_KEY="sk-1234"' > /opt/cai/.env && \
|
|
echo 'ANTHROPIC_API_KEY=""' >> /opt/cai/.env && \
|
|
echo 'DEEPSEEK_API_KEY=""' >> /opt/cai/.env && \
|
|
echo 'OLLAMA_API_BASE=""' >> /opt/cai/.env && \
|
|
echo 'PROMPT_TOOLKIT_NO_CPR=1' >> /opt/cai/.env && \
|
|
echo 'CAI_STREAM=false' >> /opt/cai/.env
|
|
|
|
# logs directory
|
|
RUN mkdir -p /opt/cai/logs
|
|
|
|
# Startup Script
|
|
RUN echo '#!/bin/bash' > /opt/cai/start.sh && \
|
|
echo 'if [ -f /config/.env ]; then' >> /opt/cai/start.sh && \
|
|
echo ' echo "Loading .env from /config/.env"' >> /opt/cai/start.sh && \
|
|
echo ' cp /config/.env /opt/cai/.env' >> /opt/cai/start.sh && \
|
|
echo 'fi' >> /opt/cai/start.sh && \
|
|
echo 'cd /opt/cai' >> /opt/cai/start.sh && \
|
|
echo 'exec cai "$@"' >> /opt/cai/start.sh && \
|
|
chmod +x /opt/cai/start.sh
|
|
|
|
# Healthcheck
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
CMD python3 -c "import cai; print('OK')" || exit 1
|
|
|
|
ENTRYPOINT ["/opt/cai/start.sh"]
|
|
CMD [] |