Working with Containers and Clusters
Wing Pro can work with Python code that is running on containers, like those provided by Docker, in the same way that you work with code running locally. This works both with individually configured containers or with clusters of containers managed by a container orchestration system.
Overview
There a number of ways to work with containers in Wing:
- An individual container may be configured from your Wing project and used as the Python Executable in Project Properties. In this case, Wing relies on the container management system to build the container and then starts up a single instance of the container as the location to run or debug Python code, unit tests, the integrated Python Shell, and OS Commands.
- Multiple containers created and managed by a container orchestration system may be used with your Wing project, by configuring and using a cluster for the Python Executable in Project Properties. In this model, Wing starts the whole cluster of containers and debugs Python code running on a selected subset of containers. Wing can also run code out of context of the cluster, by starting instances of containers without launching the whole cluster.
- It is also possible to manually configure remote debugging to containers, using Wing Pro's remote development capability for containers that can be reached via ssh or by manually configured remote debugging for other cases.
How it Works
When Wing is configured to work with a container or cluster, it works with files stored on the local host when editing, analyzing and error checking code, performing revision control operations, searching, and so forth. However, debug processes, unit tests, the Python Shell, and optionally commands defined in OS Commands are all launched inside the containers.
Wing uses the container system to map its installation and other needed files into the container environment, in order to support inspecting container environment, debugging code, and accessing container-only files.
Wing implements support for containers and clusters through a plugin interface. Support for Docker, Docker Compose, and LXC is included as a reference implementation. For more information on adding a custom container system, see Container Plugins and Cluster Plugins.
Section Contents