A collection of base images used by the AI Arena Match Controller.
Dockerfile: docker/Dockerfile.sc2
This image contains the SC2 game pre-installed.
Dockerfile: docker/Dockerfile.bot
This image contains all the different technologies and dependencies for agents to run in the AI Arena.
To bump the python version:
- Set the
PYTHON_VERSIONenvironment variable in the Dockerfile to the desired version. This will ensure it is installed in the image. - Update the
pythonversion range entry in the pyproject.toml. This will ensure compatible dependencies are installed. - Follow the steps below to bump the dependencies and generate a report as they might change based upon the new python version.
The pyproject.toml file describes required dependencies for the bot image.
To bump the dependencies, first set any specifically desired versions (or leave them as "*") in the pyproject.toml file.
Then run the following command:
# Report the previous requirements.txt file
cd docker && docker compose build bot # Build the bot image
# Take the requirements output from the console of the following command and save it to before.requirements.txt
docker run -it aiarena/arenaclient-bot-base:latest bash -c "pip install uv && uv export --format requirements.txt --no-hashes --no-header --no-annotate --no-cache -o requirements.txt"
# This will build the bot image and then run `uv sync` which will update the `uv.lock` file with the latest versions.
# After running this, copy the requirements.txt content output from the console and save it to after.requirements.txt
# Note: if you don't get the requirements.txt content output, it likely means something failed.
docker compose -f docker/docker-compose.yml run --rm --build uv-update
# This will generate a report showing the changes made.
python ./requirements_diff.py
First determine your release version. Prefix the release version with the image you want to release:
- For the bot image release version, use "bot-" (e.g. bot-v0.8.0)
- For the SC2 base image release version, use "sc2-" (e.g. sc2-v0.8.0)
To perform a release of a new version of the bot image, follow these steps:
- In this GitHub repository, click on the "Releases" heading on the right side, then "Draft a new release".
- Click to select a tag, enter the version tag you want to create (e.g. bot-v0.8.0) and click "Create new tag" and confirm.
- Enter a title for the release (e.g. "Release bot-v0.8").
- Click "Generate release notes" to auto-generate the release notes, then edit them as needed.
- Click "Publish release". The GitHub Actions workflow will automatically build and push the new bot Docker images to Docker Hub.
- Consider whether bot authors need to know about any changes to the image (e.g. dependencies).
Note: The reason for the prefix release version prefix (e.g. "bot-") is that the GitHub Actions workflow will use this prefix to determine which image to build and push.