github-actions[bot]
🤖 Deploy atari_env environment - 2025-10-21 02:05:10
538f1d3
# 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"]