Files
RGSX/Dockerfile
shane keulen acb3eb33c3 Add Docker support for RGSX web server
- Minimal Dockerfile with Python 3.11 and required dependencies
- docker-entrypoint.sh initializes folder structure and settings
- README-DOCKER.md with simple build and run instructions
- Updated .gitignore to exclude Docker test data
2025-11-01 23:42:46 -04:00

39 lines
1.1 KiB
Docker

FROM python:3.11-slim
# Install system dependencies for ROM extraction
RUN apt-get update && apt-get install -y --no-install-recommends \
p7zip-full \
unrar-free \
curl \
&& rm -rf /var/lib/apt/lists/*
# Create required directories
RUN mkdir -p /userdata/saves/ports/rgsx \
&& mkdir -p /userdata/roms/ports \
&& mkdir -p /app
# Copy RGSX application files to /app (will be copied to volume at runtime)
COPY ports/RGSX/ /app/RGSX/
# Copy entrypoint script
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# Install Python dependencies
# pygame is imported in some modules even in headless mode, so we include it
RUN pip install --no-cache-dir requests pygame
# Set environment to headless mode
ENV RGSX_HEADLESS=1
# Expose web interface port
EXPOSE 5000
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -f http://localhost:5000/ || exit 1
# Entrypoint copies app to volume, then runs command
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["python", "rgsx_web.py", "--host", "0.0.0.0", "--port", "5000"]