Configure an interpreter using Docker | PyCharm (original) (raw)

Introduction

PyCharm integration with Docker allows you to run your applications in the variously configured development environments deployed in Docker containers.

Prerequisites

Make sure that the following prerequisites are met:

Note that you cannot install any Python packages into Docker-based project interpreters.

Preparing an example

Create a Python project QuadraticEquation, add the Solver.py file, and copy and paste the following code:

import math class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

Configuring Docker as a remote interpreter

Now, let's define a Docker-based remote interpreter.

  1. Do one of the following:
    • Click the Python Interpreter selector and choose Add New Interpreter.
    • Press Ctrl+Alt+S to open Settings and go to . Click the Add Interpreter link next to the list of the available interpreters.
    • Click the Python Interpreter selector and choose Interpreter Settings. Click the Add Interpreter link next to the list of the available interpreters.
  2. Select On Docker.
  3. Select an existing Docker configuration in the Docker server dropdown.
    Alternatively, click and perform the following steps to create a new Docker configuration:
    Create a Docker configuration
    Click The Add button to add a Docker configuration and specify how to connect to the Docker daemon.
    The connection settings depend on your Docker version and operating system. For more information, refer to Docker connection settings.
    The Connection successful message should appear at the bottom of the dialog.
    Docker connection settings
    For more information about mapping local paths to the virtual machine running the Docker daemon when using Docker on Windows or macOS, refer to Virtual machine path mappings for Windows and macOS hosts. You will not be able to use volumes and bind mounts for directories outside of the mapped local path.
    This table is not available on a Linux host, where Docker runs natively and you can mount any directory to the container.
  4. The following actions depend on whether you want to pull a pre-built image from a Docker registry or to build an image locally from a Dockerfile.
    Pull a Docker image
    Select Pull or use existing and specify the tag of the desired image in the Image tag field.
    Creating a Docker interpreter by pulling an image
    Build a Docker image
    Select Build and change the default values in the Dockerfile and Context folder fields if necessary.
    Creating a Docker interpreter by building an image
    If required, expand the Optional section and specify the following:
  5. Wait for PyCharm to connect to the Docker daemon and complete the container introspection.
    Docker container introspection is completed
  6. Next, select an interpreter to use in the Docker container. You can choose any virtualenv or conda environment that is already configured in the container or select a system interpreter.
    Selecting a system interpreter for a Docker target
  7. Click OK.
    The configured remote interpreter is added to the list.

Running your application in a Docker container

In the gutter, next to the main clause, click the icon, and choose Run 'solver':

Run context menu

The script is launched in the Run tool window. Provide values to the script:

Running the sample in a Docker container

Switch to the Services tool window to preview the container details. Expand the Containers node and select the running container.

Docker container in the Services tool window

Note that the Log tab contains the same execution result.

Debugging your application in a Docker container

Next, let's debug the application. For that, let's put a breakpoint on the line that calculates d by clicking the line number. Then click in the gutter and choose .

Setting a breakpoint and launching the debugger

The debugger runs also in the Docker container:

Debugging in a Docker container

However, now this container has a different id, and hence - different name.

Summary

Let's summarize what has been done with the help of PyCharm:

See the following video tutorial for additional information:

Last modified: 07 March 2025