Spaces:
Paused
Paused
| # Use the scottyhardy/docker-remote-desktop as the base image | |
| FROM scottyhardy/docker-remote-desktop:latest | |
| # Set up environment variables | |
| ENV PYTHONUNBUFFERED=1 | |
| # Ensure RDP server is configured properly | |
| ENV RDP_SERVER=yes | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Install Python dependencies | |
| RUN apt-get update && \ | |
| apt-get install -y python3 python3-pip python3-venv python3-full && \ | |
| apt-get clean && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Create a working directory | |
| WORKDIR /app | |
| # Copy application files | |
| COPY main.py /app/ | |
| # Create and activate virtual environment | |
| RUN python3 -m venv /app/venv | |
| ENV PATH="/app/venv/bin:$PATH" | |
| # Install Python dependencies in the virtual environment | |
| RUN /app/venv/bin/pip install --no-cache-dir fastapi uvicorn websockets | |
| # Expose both WebSocket tunnel port and RDP port | |
| EXPOSE 7860 3389 | |
| # Create startup script to run the WebSocket tunnel only | |
| # Skip trying to start RDP services that require root permissions | |
| RUN echo '#!/bin/bash\n\ | |
| echo "Starting WebSocket tunnel service on port 7860..."\n\ | |
| echo "Remote desktop service should be available at localhost:3389"\n\ | |
| # Start WebSocket tunnel\n\ | |
| /app/venv/bin/python /app/main.py\n\ | |
| ' > /app/start.sh && chmod +x /app/start.sh | |
| # Set the entrypoint to run the startup script | |
| CMD ["/bin/bash", "/app/start.sh"] |