Docker container to run PyCharm Community Edition (https://www.jetbrains.com/pycharm/)
docker run --rm \
-e DISPLAY=${DISPLAY} \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.PyCharm:/home/developer/.PyCharm \
-v ~/.PyCharm.java:/home/developer/.java \
-v ~/.PyCharm.py3:/usr/local/lib/python3.7 \
-v ~/.PyCharm.share:/home/developer/.local/share/JetBrains \
-v ~/Project:/home/developer/Project \
--name pycharm-$(head -c 4 /dev/urandom | xxd -p)-$(date +'%Y%m%d-%H%M%S') \
rycus86/pycharm:latest
Docker Hub Page: https://hub.docker.com/r/rycus86/pycharm/
The IDE will have access to Python 3 and to Git.
Project folders need to be mounted like -v ~/Project:/home/developer/Project.
The actual name can be anything - I used something random to be able to start multiple instances if needed.
To use pip, either use the terminal in PyCharm or install from the terminal from inside the container like docker exec -it pycharm-running bash then install using pip.
Changes can be tested locally. You would need make, curl, Docker Desktop and
act. For example:
brew install act
act # the first invocation is to interactively configure `act`
make start_registry
make images
# scroll up in terminal output, note image name
# | "image.name": "localhost:5000/docker.io/ucscgi/azul-pycharm:2025.2.3-65"
docker pull localhost:5000/docker.io/ucscgi/azul-pycharm:2025.2.3-65
# To examine the image for vulnerabilities, browse the image in Docker Desktop.
# If an unnecessary package is found to have critical or high vulnerabilities,
# To test the image in Azul, you will need to temporarily modify Azul's
# `environment.py` to set the appropriate `azul_docker_images` value using the
# full image name noted above (starting with "localhost").
cd ../azul
$ git diff
diff --git a/Makefile b/Makefile
index 04b40feb0..afdf1f57d 100644
--- a/Makefile
+++ b/Makefile
@@ -243,7 +243,7 @@ format: check_venv check_docker
--rm \
--volume $$(python scripts/resolve_container_path.py $(project_root)):/home/developer/azul \
--workdir /home/developer/azul \
- $$(AZUL_DEBUG=0 python -m azul 'docker.resolve_docker_image_for_launch("pycharm")') \
+ localhost:5000/docker.io/ucscgi/azul-pycharm:2025.2.3-65 \
/opt/pycharm/bin/format.sh -r -settings .pycharm.style.xml -mask '*.py' $(relative_sources)
test_args = -m unittest discover --verbose test
make format
cd -
make stop_registry