PhpStorm 2023.3 Help

FAQ about Dev Containers

I see various volumes and properties in Docker after I created a dev container. What does each of them do?

After a dev container is created, the following volumes and properties appear in Docker:

  • jb_devcontainer_cache_xxx: this is a cached volume that contains all backend cashes in the root/cashed/jetbrains folder.

  • jb_devcontainers_shared_volume: the process of copying an IDE backend takes a certain amount of time. However, this process is done only once during the first dev container creation, and everything is copied into this volume. Then, this volume is shared among multiple containers, and we don't need to repeat the downloading process. If we create a dev container using another IDE or a different IDE version, we copy it into the same Docker volume. All backends are stored in one volume, making it easy to manage.

    For example, remove unnecessary backends through the Manage backends dialog.

  • jb-devcontainer-features-xxx: if you use features in your devcontainer.json file then all features are placed into such images.

    Currently, the unnecessary images should be deleted manually.

  • jb_devcontainer_sources_xxx: if we use git clone then all sources are cloned into this volume using helper container (based on alpine/git image).

How do I add more log information when creating a dev container?

Add to Help | Diagnostic Tools | Debug Log Settings the following strings:

com.intellij.platform.ijent:all
com.intellij.clouds.docker.gateway.ijent:all

How do I understand that my SSH connection was successful for creating a remote dev container using -ssh git clone?

Run the following command:

docker --host <ssh> build <git-url>:<context-dir>

Check the following example:

docker --host ssh://jetbrains@MUNIT-234:22 build git@git.jetbrains.team/devcont/DevCont_test_cases.git:.devcontainer

Why is the alpine/git image pulled during dev container creation?

We create a helper container based on the small alpine/git image, which contains some of the required tools or libraries, for example git or the SSH client. We need that to clone the repository that can be absent in the image used for a dev container creation.

Why don't you use the Create Dev Container and Mount Sources option for the SSH Docker connections?

If we already have all the sources locally, there is no need to use such a complicated and slow method like Docker via SSH.

Last modified: 20 February 2024