FROM ubuntu:22.04 # Install Electron runtime dependencies + xvfb for headless display RUN apt-get update && apt-get install -y --no-install-recommends \ wget ca-certificates python3 \ xvfb \ libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6 \ libatk-bridge2.0-0 libdrm2 libxkbcommon0 libxcomposite1 \ libxdamage1 libxrandr2 libgbm1 libasound2 libxshmfence1 \ libatspi2.0-0 libsecret-1-0 libdbus-1-3 dbus-x11 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Download and install the latest .deb release RUN wget -q -O /tmp/release.json \ "https://api.github.com/repos/xiaoY233/Chat2API/releases/latest" && \ DL_URL=$(python3 -c " import json, sys data = json.load(open('/tmp/release.json')) for a in data.get('assets', []): if a['name'].endswith('.deb') and 'amd64' in a['name']: print(a['browser_download_url']) sys.exit(0) ") && \ echo "Download: $DL_URL" && \ wget -q -O /tmp/chat2api.deb "$DL_URL" && \ dpkg -i /tmp/chat2api.deb 2>&1 || apt-get install -f -y --no-install-recommends && \ rm /tmp/chat2api.deb /tmp/release.json && \ echo "Chat2API installed: $(/opt/Chat2API/chat2api --version 2>/dev/null || echo 'electron-ready')" # Pre-configure the proxy to auto-start on boot RUN mkdir -p /data/.chat2api COPY entrypoint.sh /app/entrypoint.sh RUN chmod +x /app/entrypoint.sh ENV HOME=/data EXPOSE 7860 CMD ["/app/entrypoint.sh"]