Spaces:
Running
Running
| # Use Python 3.9 as the base image | |
| FROM python:3.9 | |
| # Set environment variables | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Install system packages | |
| RUN apt-get update && \ | |
| apt-get install -y \ | |
| curl \ | |
| sudo \ | |
| build-essential \ | |
| default-jdk \ | |
| default-jre \ | |
| g++ \ | |
| gcc \ | |
| libzbar0 \ | |
| fish \ | |
| ffmpeg \ | |
| nmap \ | |
| ca-certificates \ | |
| zsh \ | |
| rclone \ | |
| nginx \ | |
| wget && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Install Node.js (LTS version) | |
| RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && \ | |
| apt-get install -y nodejs && \ | |
| npm install -g pnpm@8.3.1 pm2 ts-node | |
| # Install dufs | |
| RUN DUF_VER=$(curl -sL https://api.github.com/repos/sigoden/dufs/releases/latest | grep tag_name | cut -d'"' -f4) && \ | |
| wget -qO /tmp/dufs.tar.gz "https://github.com/sigoden/dufs/releases/download/${DUF_VER}/dufs-${DUF_VER}-x86_64-unknown-linux-musl.tar.gz" && \ | |
| tar xzf /tmp/dufs.tar.gz -C /usr/local/bin/ dufs && \ | |
| chmod +x /usr/local/bin/dufs && \ | |
| rm -f /tmp/dufs.tar.gz | |
| # Install code-server | |
| RUN curl -fsSL https://code-server.dev/install.sh | sh - | |
| # Create a user to run code-server | |
| RUN useradd -m -s /bin/zsh coder && \ | |
| echo 'coder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | |
| # Create code-server configuration directory | |
| RUN mkdir -p /home/coder/.local/share/code-server/User && \ | |
| chmod -R 777 /home/coder && \ | |
| echo '{ \ | |
| "workbench.colorTheme": "Default Dark Modern", \ | |
| "telemetry.enableTelemetry": true, \ | |
| "telemetry.enableCrashReporter": true \ | |
| }' > /home/coder/.local/share/code-server/User/settings.json && \ | |
| chown -R coder:coder /home/coder/.local/share/code-server | |
| # Install Python extension for code-server | |
| RUN sudo -u coder code-server --install-extension ms-python.python | |
| # Copy config files | |
| COPY --chown=coder:coder start_server.sh /home/coder/ | |
| COPY nginx.conf /etc/nginx/nginx.conf | |
| RUN chmod +x /home/coder/start_server.sh | |
| ENV HOME=/home/coder \ | |
| PATH=/home/coder/.local/bin:$PATH | |
| WORKDIR /home/coder | |
| EXPOSE 7860 | |
| CMD ["sh", "-c", "/home/coder/start_server.sh"] |