# Use an official Python base image from the Docker Hub FROM python:3.10-slim # Install git RUN apt-get -y update RUN apt-get -y install git chromium-driver # Install Xvfb and other dependencies for headless browser testing RUN apt-get update \ && apt-get install -y wget gnupg2 libgtk-3-0 libdbus-glib-1-2 dbus-x11 xvfb ca-certificates # Install Firefox / Chromium RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ && apt-get update \ && apt-get install -y chromium firefox-esr # Set environment variables ENV PIP_NO_CACHE_DIR=yes \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 # Create a non-root user and set permissions RUN useradd --create-home appuser WORKDIR /home/appuser RUN chown appuser:appuser /home/appuser USER appuser # Copy the requirements.txt file and install the requirements COPY --chown=appuser:appuser requirements.txt . RUN sed -i '/Items below this point will not be included in the Docker Image/,$d' requirements.txt && \ pip install --no-cache-dir --user -r requirements.txt # Copy the application files COPY --chown=appuser:appuser autogpt/ ./autogpt # Set the entrypoint ENTRYPOINT ["python", "-m", "autogpt"]