|
- # Basic setup
- FROM python:3.11-slim-bookworm
-
- # Update and install necessary packages
- RUN apt-get update && apt-get -y update
- # added vim and nano for convenience
- RUN apt-get install -y sudo git npm vim nano curl wget
-
- # Setup a non-root user 'autogen' with sudo access
- RUN adduser --disabled-password --gecos '' autogen
- RUN adduser autogen sudo
- RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
- USER autogen
- WORKDIR /home/autogen
-
- # Set environment variable
- # ENV OPENAI_API_KEY="{OpenAI-API-Key}"
-
- # Clone the AutoGen repository
- RUN git clone https://github.com/microsoft/autogen.git /home/autogen/autogen
- WORKDIR /home/autogen/autogen
-
- # Install AutoGen in editable mode with extra components
- RUN sudo pip install -e .[test,teachable,lmm,retrievechat,mathchat,blendsearch]
-
- # Install pre-commit hooks
- RUN pre-commit install
-
- # Setup Docusaurus and Yarn for the documentation website
- RUN sudo npm install --global yarn
- RUN sudo pip install pydoc-markdown
- RUN cd website
- RUN yarn install --frozen-lockfile --ignore-engines
-
- RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && \
- wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.4.549/quarto-1.4.549-linux-${arch}.tar.gz && \
- mkdir -p /home/autogen/quarto/ && \
- tar -xzf quarto-1.4.549-linux-${arch}.tar.gz --directory /home/autogen/quarto/ && \
- rm quarto-1.4.549-linux-${arch}.tar.gz
-
- ENV PATH="${PATH}:/home/autogen/quarto/quarto-1.4.549/bin/"
-
- # Exposes the Yarn port for Docusaurus
- EXPOSE 3000
-
- # Pre-load popular Python packages
- RUN pip install numpy pandas matplotlib seaborn scikit-learn requests urllib3 nltk pillow pytest beautifulsoup4
-
- # Set the default command to bash
- CMD ["/bin/bash"]
|