Docker Remote Debugging

To connect to python remote interpreter inside docker, you have to make sure first, that Pycharm is aware of your docker.

Go to Settings > Build, Execution, Deployment > Docker. If you are on linux, you can use docker directly using its socket unix:///var/run/docker.sock, if you are on Windows or Mac, make sure that you have docker-machine installed, then you can simply Import credentials from Docker Machine.

../_images/1.png

Configure Remote Python Interpreter

This repository comes with already prepared “Run/Debug Configurations” for docker.

../_images/2.png

But as you can see, at the beggining there is something wrong with them. They have red X on django icon, and they cannot be used, without configuring remote python interpteter. To do that, you have to go to Settings > Build, Execution, Deployment first.

Next, you have to add new remote python interpreter, based on already tested deployment settings. Go to Settings > Project > Project Interpreter. Click on the cog icon, and click Add Remote.

../_images/3.png

Switch to Docker Compose and select local.yml file from directory of your project, next set Service name to django

../_images/4.png

Because Pycharm restarts container every time you use Configuration Run, to not have server restarted during running tests, we defined second service in local.yml file called pycharm. To use it, you have to add interpreter of second service as well.

../_images/5.png

The final result should be:

../_images/6.png

Having that, click OK. Close Settings panel, and wait few seconds…

../_images/7.png

After few seconds, all Run/Debug Configurations should be ready to use.

../_images/8.png

Things you can do with provided configuration:

Known issues

../_images/issue1.png

This might be fault of your firewall. Take a look on this ticket - https://youtrack.jetbrains.com/issue/PY-18913

Most of the files from .idea/ were added to .gitignore with a few exceptions, which were made, to provide “ready to go” configuration. After adding remote interpreter some of these files are altered by PyCharm:

../_images/issue2.png

In theory you can remove them from repository, but then, other people will lose a ability to initialize a project from provided configurations as you did. To get rid of this annoying state, you can run command:

$ git update-index --assume-unchanged ej.iml