Provide contructor argument for Docker containers
Primitives can have Docker images as dependencies. In that case Python code is probably just a thin wrapper which communicates with Docker containers. But primitive has to know under which IP this container is running.
I imagine the following:
- primitive specifies Docker images it needs through
installationannotation, each having a name - TA2 system (or evaluation environment) runs those images and gets Docker containers
- when creating a primitive, it passes a dict mapping name to Docker container address to the primitive
Docker containers would run for multiple instances of Python primitive code so it should handle that. It also would not be started and killed with Python primitive code, but be long living.
While installation annotation allows for specifying multiple images, it is a very basic configuration of just running those containers without any extra parameters. It might be that we need in the future a more complicated settings to those containers to get them running and so on. We should think how to do that to not replicate work of docker compose and Kubernetes configuration.