# Use Ubuntu as base image FROM rir18/mltb:latest # Set environment variables ENV DEBIAN_FRONTEND=noninteractive # Install dependencies RUN apt-get update && apt-get install -y \ sudo \ nano \ && rm -rf /var/lib/apt/lists/* # Install code-server RUN curl -fsSL https://code-server.dev/install.sh | sh RUN curl https://cli-assets.heroku.com/install.sh | sh # Create a non-root user RUN useradd -m -s /bin/bash coder && \ echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # Set working directory WORKDIR /home/coder # Create workspace directory RUN mkdir -p /home/coder/workspace && \ chown -R coder:coder /home/coder # Switch to root user to fix permissions for code-server USER root # Create config directory RUN mkdir -p /home/coder/.config/code-server # Install AI coding assistant extensions that support Gemini #RUN code-server --install-extension Continue.continue || true RUN code-server --install-extension donjayamanne.githistory # Set up code-server config RUN echo "bind-addr: 0.0.0.0:7860" > /home/coder/.config/code-server/config.yaml && \ echo "auth: password" >> /home/coder/.config/code-server/config.yaml && \ echo "password: ${PASSWORD}" >> /home/coder/.config/code-server/config.yaml && \ echo "cert: false" >> /home/coder/.config/code-server/config.yaml # Set up code-server json COPY ./settings.json /root/.local/share/code-server/User/settings.json # Copy startup scripts COPY --chown=coder:coder startup.sh /home/coder/startup.sh RUN chmod +x /home/coder/startup.sh # Expose port 7860 (Hugging Face Spaces default port) EXPOSE 7860 # Start code-server with persistence CMD ["/home/coder/startup.sh"]