Spaces:
Build error
Build error
libasound2 \ | |
libatk-bridge2.0-0 \ | |
libdrm2 \ | |
libxkbcommon0 \ | |
libxss1 \ | |
libxrandr2 \ | |
libpangocairo-1.0-0 \ | |
libatk1.0-0 \ | |
libcairo-gobject2 \ | |
libgtk-3-0 \ | |
libgdk-pixbuf2.0-0 \FROM codercom/code-server:latest | |
# Switch to root user for setup | |
USER root | |
# Install Python, Node.js, and comprehensive development tools | |
RUN apt-get update && \ | |
apt-get install -y \ | |
python3 \ | |
python3-pip \ | |
python3-venv \ | |
python3-full \ | |
pipx \ | |
curl \ | |
git \ | |
build-essential \ | |
wget \ | |
unzip \ | |
vim \ | |
nano \ | |
htop \ | |
tree \ | |
jq \ | |
sqlite3 \ | |
postgresql-client \ | |
default-mysql-client \ | |
redis-tools \ | |
chromium \ | |
xvfb \ | |
fonts-liberation \ | |
libasound2 \ | |
libatk-bridge2.0-0 \ | |
libdrm2 \ | |
libxkbcommon0 \ | |
libxss1 \ | |
libgconf-2-4 \ | |
libxrandr2 \ | |
libasound2 \ | |
libpangocairo-1.0-0 \ | |
libatk1.0-0 \ | |
libcairo-gobject2 \ | |
libgtk-3-0 \ | |
libgdk-pixbuf2.0-0 \ | |
ffmpeg \ | |
imagemagick \ | |
pandoc \ | |
texlive-xetex \ | |
texlive-fonts-recommended \ | |
texlive-plain-generic && \ | |
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \ | |
apt-get install -y nodejs && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
# Install common Python packages globally to avoid runtime issues | |
RUN pip3 install --break-system-packages \ | |
flask \ | |
fastapi \ | |
uvicorn \ | |
requests \ | |
beautifulsoup4 \ | |
selenium \ | |
pandas \ | |
numpy \ | |
matplotlib \ | |
seaborn \ | |
plotly \ | |
jupyter \ | |
notebook \ | |
streamlit \ | |
gradio \ | |
opencv-python-headless \ | |
pillow \ | |
scikit-learn \ | |
tensorflow \ | |
torch \ | |
transformers \ | |
openai \ | |
anthropic \ | |
langchain \ | |
chromadb \ | |
sqlalchemy \ | |
psycopg2-binary \ | |
pymongo \ | |
redis \ | |
celery \ | |
pytest \ | |
black \ | |
flake8 \ | |
mypy | |
# Install global npm packages commonly used | |
RUN npm install -g \ | |
create-react-app \ | |
vue-cli \ | |
@angular/cli \ | |
express-generator \ | |
pm2 \ | |
nodemon \ | |
typescript \ | |
ts-node \ | |
webpack \ | |
vite \ | |
eslint \ | |
prettier \ | |
jest \ | |
mocha \ | |
cypress \ | |
playwright \ | |
@playwright/test | |
# Remove the externally-managed-environment file to allow pip installs | |
RUN rm -f /usr/lib/python*/EXTERNALLY-MANAGED | |
# Create the working directory and set proper ownership | |
RUN mkdir -p /animesh && \ | |
chown -R coder:coder /animesh | |
# Set up npm global directory for coder user to avoid permission issues | |
RUN mkdir -p /home/coder/.npm-global && \ | |
chown -R coder:coder /home/coder/.npm-global | |
# Create a Python virtual environment that's always activated | |
RUN python3 -m venv /home/coder/.venv && \ | |
chown -R coder:coder /home/coder/.venv | |
# Switch back to coder user | |
USER coder | |
# Configure npm to use user-owned global directory | |
RUN npm config set prefix '/home/coder/.npm-global' | |
# Update PATH to include npm global binaries, venv, and local binaries | |
ENV PATH="/home/coder/.venv/bin:/home/coder/.npm-global/bin:/home/coder/.local/bin:$PATH" | |
# Upgrade pip in the virtual environment | |
RUN /home/coder/.venv/bin/pip install --upgrade pip | |
# Set up Chromium for headless browsing (for Selenium/Playwright) | |
ENV CHROME_BIN=/usr/bin/chromium | |
ENV DISPLAY=:99 | |
# Create a script to start Xvfb in the background | |
RUN echo '#!/bin/bash\nXvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &' > /home/coder/start-xvfb.sh && \ | |
chmod +x /home/coder/start-xvfb.sh | |
# Set the working directory | |
WORKDIR /animesh | |
# Expose port for Hugging Face Spaces | |
EXPOSE 7860 | |
# Start Xvfb and then code-server | |
CMD ["/bin/bash", "-c", "/home/coder/start-xvfb.sh && code-server --auth=none --bind-addr 0.0.0.0:7860 /animesh"] |