Xingyao Wang 405c8a0456
[Arch] Add runtime image build CI & clean up runtime build using jinja2 template (#3055)
* test_runtime_client.py to test _execute_bash()

* runtime_build and runtime tweaks

* fix in docker script

* revert bash changes

* use sandbox_config.update_source_code to control source code update

* add od_version to the sandbox tag

* add doc instruction for update source code

* do not remove whole poetry folder;
add mamba clean

* add missing newlines

* cleanup runtime dockerfile into jinja template

* make prep temp file a separate function;
make that function accessible through cli

* modify `runtime_build.py` so it can generate directory for building docker img

* add dockerfile and sdist of runtime to gitignore since it will be dynamically generated

* add runtime to build

* do not rebuild new image when an `od_runtime` is provided

* use default container_image for testing if possible

* move runtime tests to ghcr runtime workflow

* update docker base dir for runtime

* fix unittest

* fix image name

* fix image name for test case

* rename to make it consistent

---------

Co-authored-by: tobitege <tobitege@gmx.de>
2024-07-24 21:56:12 +08:00

582 B

Dynamic constructed Dockerfile

This folder builds runtime image (sandbox), which will use a Dockerfile that is dynamically generated depends on the base_image AND a Python source distribution that's based on the current commit of opendevin.

The following command will generate Dockerfile for ubuntu:22.04 and the source distribution .tar into containers/runtime.

poetry run python3 opendevin/runtime/utils/runtime_build.py \
    --base_image ubuntu:22.04 \
    --build_folder containers/runtime