Configuring Remote Interpreters via Docker
In this section:
Prerequisite
Before you start working with Docker, make sure that Docker integration plugin is enabled. The plugin is bundled with PyCharm and activated by default. If it is not, enable the plugin as described in the section Enabling and Disabling Plugins.
Configuring remote interpreter using Docker
To set up a Python interpreter inside a Docker container for your project, follow these steps:
- In the Project Interpreter page of the Settings/Preferences dialog box, click , and then choose Add Remote.
- From the Configure Remote Python Interpreter dialog box that opens, choose the option Docker:
- If the required Docker machine is not available, click New, and in the dialog box that
opens, specify the machine name, API URL, and the certificates folder.
If you want to import credentials of an existing Docker machine, select the corresponding check box.
The configured remote interpreter is set as the project interpreter. Now you can run, debug and profile your application using Python inside a Docker container.
Note that for the project interpreters created via Docker, the field Path mappings is always empty, and packages toolbar is not available.
The buttons on this toolbar are disabled for the Docker interpreters:
All the packages should be already installed in the Docker image. If some packages are missing, then you will have to create a new Docker image, as described on the page Quickstart Guide: Compose and Django.
Limitation
As of this writing, on Windows and MacOS platforms running, debugging and profiling applications is only possible for the projects residing in the user home directory. If necessary, configure other directories in the VirtualBox settings.
Docker Machine on Linux does not share user home folder, and any other folders as well. Thus, for running,
debugging and profiling applications, the user should add shared folders with the project sources to the
VirtualBox Docker virtual machine manually. These shared folders on VM should be mapped one to one to
the folders on the host Linux machine, i.e.
(host) /home/user <=> /home/user
(VM) or
(host) /home/my/project <=> /home/my/project
(VM)