Spaces:
Sleeping
Sleeping
| # Dockerfile for Atari Environment | |
| # This image provides Atari 2600 games via the Arcade Learning Environment (ALE) | |
| # Configurable base image - defaults to local build, can be overridden for CI/CD | |
| # Base image provides: fastapi, uvicorn, requests, curl, PYTHONPATH=/app/src | |
| # | |
| # Local build: docker build -t envtorch-base:latest -f src/core/containers/images/Dockerfile . | |
| # docker build -f src/envs/atari_env/server/Dockerfile -t atari-env:latest . | |
| # | |
| # CI/CD build: docker build --build-arg BASE_IMAGE=ghcr.io/meta-pytorch/openenv-base:latest \ | |
| # -f src/envs/atari_env/server/Dockerfile -t atari-env:latest . | |
| ARG BASE_IMAGE=openenv-base:latest | |
| FROM ${BASE_IMAGE} | |
| # Install ALE-specific dependencies | |
| # ale-py includes all Atari ROMs by default and requires gymnasium | |
| RUN pip install --no-cache-dir \ | |
| gymnasium>=0.29.0 \ | |
| ale-py>=0.8.0 \ | |
| numpy>=1.24.0 | |
| # Copy OpenEnv core (base image already set WORKDIR=/app) | |
| COPY src/core/ /app/src/core/ | |
| # Copy Atari environment code | |
| COPY src/envs/atari_env/ /app/src/envs/atari_env/ | |
| # Copy README for web interface documentation | |
| COPY src/envs/atari_env/README.md /app/README.md | |
| # Atari-specific environment variables (can be overridden at runtime) | |
| ENV ATARI_GAME=pong | |
| ENV ATARI_OBS_TYPE=rgb | |
| ENV ATARI_FULL_ACTION_SPACE=false | |
| ENV ATARI_REPEAT_ACTION_PROB=0.0 | |
| ENV ATARI_FRAMESKIP=4 | |
| # Expose port | |
| EXPOSE 8000 | |
| # Health check | |
| HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ | |
| CMD curl -f http://localhost:8000/health || exit 1 | |
| # Run the FastAPI server | |
| CMD ["uvicorn", "envs.atari_env.server.app:app", "--host", "0.0.0.0", "--port", "8000"] | |