# OpenSpiel environment using pre-built OpenSpiel base image # Use the pre-built OpenSpiel base image (contains compiled OpenSpiel) # Built from: docker build -t openspiel-base:latest -f src/envs/openspiel_env/server/Dockerfile.openspiel-base . # In GitHub Actions, this is overridden to use the GHCR base image ARG OPENSPIEL_BASE_IMAGE=ghcr.io/meta-pytorch/openenv-openspiel-base:sha-e622c7e FROM ${OPENSPIEL_BASE_IMAGE} # Copy OpenEnv core (base image already set WORKDIR=/app) WORKDIR /app COPY src/core/ /app/src/core/ # Copy OpenSpiel environment COPY src/envs/openspiel_env/ /app/src/envs/openspiel_env/ # Copy README for web interface documentation COPY src/envs/openspiel_env/README.md /app/README.md # Extend Python path for OpenEnv (base image set PYTHONPATH=/app/src) # We prepend OpenSpiel paths ENV PYTHONPATH=/repo:/repo/build/python:/app/src # OpenSpiel-specific environment variables (can be overridden at runtime) ENV OPENSPIEL_GAME=catch ENV OPENSPIEL_AGENT_PLAYER=0 ENV OPENSPIEL_OPPONENT_POLICY=random # Health check (curl is provided by openenv-base) HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8000/health || exit 1 # Note: EXPOSE 8000 already set by openenv-base # Run the FastAPI server (uvicorn installed by openenv-base) CMD ["uvicorn", "envs.openspiel_env.server.app:app", "--host", "0.0.0.0", "--port", "8000"] ENV ENABLE_WEB_INTERFACE=true