From 1d0aa996ff15d90078698690512f713d50343f1f Mon Sep 17 00:00:00 2001 From: Yogesh Date: Thu, 6 Nov 2025 03:35:23 +0530 Subject: [PATCH] dockerfiles separated --- src/envs/pokemon_env/README.md | 4 ++-- .../{Dockerfile.env => Dockerfile.pokemonenv} | 3 ++- .../pokemon_env/server/pokemon_environment.py | 16 ++++++++++++---- 3 files changed, 16 insertions(+), 7 deletions(-) rename src/envs/pokemon_env/server/{Dockerfile.env => Dockerfile.pokemonenv} (94%) diff --git a/src/envs/pokemon_env/README.md b/src/envs/pokemon_env/README.md index 41e23c3a..d6b2776c 100644 --- a/src/envs/pokemon_env/README.md +++ b/src/envs/pokemon_env/README.md @@ -50,7 +50,7 @@ print(f"Reward: {result.reward}, Done: {result.done}") ```bash # Build both images (run from project root directory) docker build -t pokemon-showdown:latest -f src/envs/pokemon_env/server/Dockerfile.showdown . -docker build -t pokemon-env:latest -f src/envs/pokemon_env/server/Dockerfile.env . +docker build -t pokemon-env:latest -f src/envs/pokemon_env/server/Dockerfile.pokemonenv . # Create Docker network for container communication docker network create pokemon-network @@ -68,7 +68,7 @@ curl http://localhost:9980/health # Test OpenEnv server ## Configuration Environment variables: -- `POKEMON_BATTLE_FORMAT` - Battle format (default: `gen9randombattle`) +- `POKEMON_BATTLE_FORMAT` - Battle format (default: `gen8randombattle`) - `POKEMON_REWARD_MODE` - Reward mode: `sparse` or `dense` (default: `sparse`) - `POKEMON_MAX_TURNS` - Maximum turns per battle (default: `1000`) - `POKEMON_PLAYER_USERNAME` - Player username (default: auto-generated) diff --git a/src/envs/pokemon_env/server/Dockerfile.env b/src/envs/pokemon_env/server/Dockerfile.pokemonenv similarity index 94% rename from src/envs/pokemon_env/server/Dockerfile.env rename to src/envs/pokemon_env/server/Dockerfile.pokemonenv index 7ba5310a..7baa600e 100644 --- a/src/envs/pokemon_env/server/Dockerfile.env +++ b/src/envs/pokemon_env/server/Dockerfile.pokemonenv @@ -26,7 +26,8 @@ COPY src/envs/pokemon_env/ /app/src/envs/pokemon_env/ COPY src/envs/pokemon_env/README.md /app/README.md # Pokemon environment variables -ENV POKEMON_BATTLE_FORMAT=gen9randombattle +ENV SHOWDOWN_SERVER_URL=pokemon-showdown:8000 +ENV POKEMON_BATTLE_FORMAT=gen8randombattle ENV POKEMON_PLAYER_USERNAME=player ENV POKEMON_REWARD_MODE=sparse ENV POKEMON_MAX_TURNS=1000 diff --git a/src/envs/pokemon_env/server/pokemon_environment.py b/src/envs/pokemon_env/server/pokemon_environment.py index fc67a33d..df24c2ee 100644 --- a/src/envs/pokemon_env/server/pokemon_environment.py +++ b/src/envs/pokemon_env/server/pokemon_environment.py @@ -15,6 +15,7 @@ import asyncio import logging import uuid +import os from dataclasses import asdict from threading import Event, Lock from typing import Any, Dict, List, Optional @@ -25,7 +26,7 @@ try: # Import from top-level poke_env module - from poke_env import Player, RandomPlayer, AccountConfiguration, LocalhostServerConfiguration + from poke_env import Player, RandomPlayer, AccountConfiguration, ServerConfiguration # Import battle orders from player submodule from poke_env.player import BattleOrder, ForfeitBattleOrder # Import concurrency from concurrency submodule @@ -247,13 +248,17 @@ def __init__( self.player_username = player_username or f"player_{uuid.uuid4().hex[:8]}" self.reward_mode = reward_mode self.max_turns = max_turns + self.showdown_server_url = os.getenv("SHOWDOWN_SERVER_URL", "localhost:8000") # Initialize player on POKE_LOOP logger.info(f"Creating player {self.player_username} for format {battle_format}") self.player = OpenEnvPokemonPlayer( account_configuration=AccountConfiguration(self.player_username, None), - server_configuration=LocalhostServerConfiguration, + server_configuration=ServerConfiguration( + f"ws://{self.showdown_server_url}/showdown/websocket", + "https://play.pokemonshowdown.com/action.php?" + ), battle_format=self.battle_format, max_concurrent_battles=1, # One battle at a time ) @@ -264,7 +269,10 @@ def __init__( logger.info(f"Creating random opponent {opponent_username}") self.opponent = RandomPlayer( account_configuration=AccountConfiguration(opponent_username, None), - server_configuration=LocalhostServerConfiguration, + server_configuration=ServerConfiguration( + f"ws://{self.showdown_server_url}/showdown/websocket", + "https://play.pokemonshowdown.com/action.php?" + ), battle_format=self.battle_format, max_concurrent_battles=1, ) @@ -275,7 +283,7 @@ def __init__( self._state = PokemonState( battle_format=battle_format, player_username=self.player_username, - server_url="localhost:8000", + server_url=self.showdown_server_url, ) # Battle tracking