[{"data":1,"prerenderedAt":142},["ShallowReactive",2],{"$fBBQ5ulyG5jVWbIBJe3r8F-kTKQKf1scMJiu0B6qzX5k":3,"$f7AVZHmPutZ23_8XKkLbDtEszKCuiY3yPjIDp9eRXGag":5,"$fW0s5XkClNpkvkgfuVXcflRAKcZ3n5nEeZ_A7hCH07YU":7,"$fLmJGI-KfSpIKc2rSThV5jwAuCzvMB-Dc3fgs5sOk0pc":118},{"data":4},[],{"data":6},[],{"data":8,"meta":114},[9],{"id":10,"documentId":11,"title":12,"seo_title":13,"summary":14,"seo_description":15,"slug":16,"published_date":17,"body":18,"content":19,"createdAt":35,"updatedAt":36,"publishedAt":37,"blogauthor":38,"cover":60,"categories":103},326,"ymtfa6pslevvkrwnohdfbi1u","Как не потерять интеграцию с Docker в IDE после блокировки JetBrains","Docker в IDE без JetBrains: плагин для OpenIDE","После ухода JetBrains Docker-плагин стал недоступен в России. OpenIDE написала свой с нуля: он бесплатен в маркетплейсе и пережил уже два мажорных релиза.","Docker-плагин OpenIDE написан с нуля и бесплатен: сервисы compose, контейнеры, тома, сети, логи, include-файлы, вкладка Structure и кнопка down with volumes.","kak-ne-poteryat-integracziyu-s-docker-v-ide-posle-blokirovki-jetbrains","2026-09-10","Те, кто работал в IntelliJ IDEA, PyCharm, GoLand или WebStorm, привыкли управлять Docker прямо из IDE: запускать и останавливать контейнеры, смотреть логи, работать с томами не выходя из редактора.\n\nВ 2022 году JetBrains приостановила продажи и поддержку для пользователей из России. IDE стали недоступны через официальные каналы, а плагины из JetBrains Marketplace (в том числе и Docker-плагин) вместе с ними.\n\n> Если про [OpenIDE](https:\u002F\u002Fopenide.ru\u002F) слышите впервые, не буду тратить ваше время на большое вступление. Коротко: это мультиязычная IDE на платформе IntelliJ. Один дистрибутив вместо набора отдельных IDE под каждый язык: Java и Kotlin, Go, Python, PHP, JavaScript и TypeScript. Прямо в IDE встроены DB-клиент, HTTP-клиент, Git, Docker и профилировщики, а AI-агенты подключаются через открытый протокол ACP.\n\n![]({{strapiUrl}}\u002Fuploads\u002F40cca616bf58de8cef5d1369114aab2d_e531cf3b6e.webp)\n\n> Дистрибутив [лежит на сайте](https:\u002F\u002Fopenide.ru\u002Fdownload\u002F) и скачивается напрямую, без VPN и обходных путей.\n\n[OpenIDE](https:\u002F\u002Fopenide.ru\u002F) построена на базе IntelliJ Platform, как и все IDE от компании JetBrains. Часть плагинов из экосистемы JetBrains мы смогли перенести в собственный [маркетплейс](https:\u002F\u002Fmarketplace.openide.ru\u002F) (лицензии позволяли). Docker-плагин к таким не относился, но являлся **first class citizen для любого стека**. Именно по этой причине консорциум OpenIDE принял решение **реализовать поддержку Docker с нуля**!\n\n> Немного забегая вперед, сейчас мы понимаем, что у этой, как может показаться на первый взгляд, негативной стороны медали, есть и положительная сторона – возможность реализовать некоторые фичи так, как мы считаем нужным.\n\nВместо того чтобы воспроизводить существующее решение один в один, мы начали с вопроса: какие задачи разработчики реально решают через Docker в IDE, и где текущие возможности IDE создают лишние шаги или кажутся нелогичными\u002Fнеудобными?\n\n\u003Ch3 id=\"dva-mazhornyh-reliza-spustya\">Два мажорных релиза спустя\u003C\u002Fh3>\n\nПлагин [доступен](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fdocker\u002F339\u002F) в маркетплейсе OpenIDE бесплатно, без VPN и обходных путей. Версия помечена как BETA, но плагин прошёл уже два мажорных релиза.\n\nЯ думаю, что подавляющая часть возможностей, к которым вы привыкли уже реализована: боковая панель с сервисами из docker-compose, запущенными контейнерами и томами, отдельные вкладки для сетей, образов и контейнеров вне compose, терминал с логами.\n\n![]({{strapiUrl}}\u002Fuploads\u002F9bcba231e665ddf9b3b016c42b9bbb88_a90d1e6189.webp)\n\nНо несколько вещей мы сделали иначе:\n\n- **down with volumes.** Типичный сценарий при локальной разработке: остановить контейнер и сразу удалить связанные тома, чтобы начать с чистого состояния. В старом плагине это два отдельных действия в разных местах. Мы добавили одну кнопку, которая делает и то, и другое. Мелочь по реализации, но убирает бесполезные, как по мне, шаги.\n\n  ![]({{strapiUrl}}\u002Fuploads\u002F126160a4a62edc924f68f6d9946934f3_62e1b72325.webp)\n\n- **include-файлы.** Многие проекты организуют docker-compose через несколько файлов, связанных блоком `include`. Плагин показывает все сервисы — и из основного файла, и из подключённых — в одном месте. Не нужно держать в голове, в каком файле что описано.\n\n  ![]({{strapiUrl}}\u002Fuploads\u002Fadf73080e289ef928644fb155c9cc717_2640fb04b0.webp)\n\n- **Вкладка Structure.** Этой функции не было в первых версиях, но её попросило комьюнити. Навигация по docker-описаниям, клик на сервис открывает нужный файл в нужном месте. Мы добавили, потому что запрос был довольно конкретным и понятным.\n\n  ![]({{strapiUrl}}\u002Fuploads\u002F1cd0bae8d28c9a1f932806b1a4abd276_9bfa8df13a.webp)\n\n\u003Ch3 id=\"dlya-java-i-kotlin-otdelnaya-integracziya-cherez-amplicode\">Для Java и Kotlin — отдельная интеграция через Amplicode\u003C\u002Fh3>\n\nOpenIDE предоставляет самую полную поддержку Spring благодаря встроенному [Amplicode](https:\u002F\u002Famplicode.ru\u002F). Тот в свою очередь использует Docker-плагин как основу и добавляет поверх него слой, актуальный именно для Spring-разработчика. Через Amplicode Explorer можно создать всё необходимое для приложения — Helm-чарты, ресурсы Kubernetes, модули Terraform или docker-compose — не выходя из IDE.\n\n![]({{strapiUrl}}\u002Fuploads\u002Fa864e35cdf0eba28d4f3b18757d563ff_8972a797bf.webp)\n\nAmplicode подставит переменные окружения и сгенерирует конфигурации с учётом контекста проекта. Подробнее про поддержку именно для Spring-проектов можно посмотреть в следующем видео:\n\n\u003Cdiv class=\"video-player\" data-youtube=\"C0LZlwj-TlM\">\u003Ciframe src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FC0LZlwj-TlM\" width=\"100%\" height=\"400\" frameborder=\"0\" allowfullscreen loading=\"lazy\">\u003C\u002Fiframe>\u003C\u002Fdiv>\n\nПри создании Dockerfile доступны опции, которые обычно настраиваются отдельно и вручную: включение AppCDS для ускорения старта и настройка JVM через встроенный memory calculator с объяснением логики каждого параметра. Подробнее про это можете прочитать в [отдельной статье](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fspring_aio\u002Farticles\u002F901302\u002F).\n\n\u003Cvideo src=\"https:\u002F\u002Famplicode.ru\u002Fvideos\u002Fcontainerization\u002Fdocker_docker-compose\u002F1.mp4\" controls muted loop playsinline width=\"100%\" poster=\"{{strapiUrl}}\u002Fuploads\u002Fcover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp\" preload=\"none\">\u003C\u002Fvideo>\n\n\u003Ch2 id=\"db-klient-eshhyo-odin-plagin-kotoryj-my-napisali-s-nulya\">DB-клиент: ещё один плагин, который мы написали с нуля\u003C\u002Fh2>\n\nDocker-плагин не единственная история такого рода. По той же причине и примерно тем же способом мы сделали [собственный DB-клиент](\u002Fblog\u002Fdb-klient-openide-ot-podklyucheniya-k-baze-do-explain-i-eksporta\u002F). Он встроен в IDE, поэтому отдельная программа для работы с базой не нужна: подключение к серверу, дерево схем и таблиц, генерация DDL и диаграмма связей открываются в том же окне, где лежит код проекта.\n\n\u003Cvideo src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fdb_client_compressed.mp4\" controls muted loop playsinline width=\"100%\" poster=\"{{strapiUrl}}\u002Fuploads\u002Fcover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp\" preload=\"none\">\u003C\u002Fvideo>\n\nSQL-редактор знает структуру подключенной базы. После `FROM` он подставляет реальные таблицы, после обращения к таблице показывает её колонки, опечатки подсвечивает до запуска. Запрос выполняется здесь же, результат открывается в гриде под редактором, оттуда данные сортируются, фильтруются, правятся по ячейкам и выгружаются в CSV, JSON, SQL или XML. Медленный запрос можно сразу отправить в EXPLAIN и посмотреть план в виде дерева. Работает это с PostgreSQL, MySQL, Oracle, ClickHouse и другими СУБД.\n\n\u003Ch3 id=\"vash-stek-nash-docker\">Ваш стек, наш Docker\u003C\u002Fh3>\n\nOpenIDE поддерживает Java, Kotlin, Go, Python, JavaScript\u002FTypeScript. Переход на нашу IDE даёт поддержку языка и Docker-интеграцию из коробки.\n\nПлагин покрывает сценарии, с которыми к нам приходили разработчики. Если ваш сценарий в этом списке не нашёлся — [напишите нам](https:\u002F\u002Fopenide.ru\u002Fcontacts\u002F). Мы будем рады обсудить ваши рабочие сценарии и покрыть их в нашем продукте!\n\n![]({{strapiUrl}}\u002Fuploads\u002F06f1959f95ad771dc943f05d8f1e155c_a3c797f2d2.webp)\n\n[OpenIDE](https:\u002F\u002Fopenide.ru\u002F) бесплатна навсегда, а Pro версию [можно попробовать](https:\u002F\u002Fopenide.ru\u002Fdownload\u002F) в течение 60 дней без регистрации. Часть описанных возможностей доступна и в обычной версии, все возможности без исключения в OpenIDE Pro.\n\n---\n\n_Впервые опубликовано на [Хабре](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F1080720\u002F)._\n",[20],{"title":21,"links":22},"Содержание",[23,26,29,32],{"label":24,"href":25},"Два мажорных релиза спустя","#dva-mazhornyh-reliza-spustya",{"label":27,"href":28},"Для Java и Kotlin — отдельная интеграция через Amplicode","#dlya-java-i-kotlin-otdelnaya-integracziya-cherez-amplicode",{"label":30,"href":31},"DB-клиент: ещё один плагин, который мы написали с нуля","#db-klient-eshhyo-odin-plagin-kotoryj-my-napisali-s-nulya",{"label":33,"href":34},"Ваш стек, наш Docker","#vash-stek-nash-docker","2026-11-12T11:23:46.795Z","2026-11-13T11:49:15.124Z","2026-11-13T11:49:15.183Z",{"id":39,"documentId":40,"firstname":41,"lastname":42,"createdAt":43,"updatedAt":44,"publishedAt":45,"slug":46,"photo":47},40,"yuewij1jc3qoxmkvsh2mpeny","Георгий","Власов","2026-02-17T11:40:25.168Z","2026-11-13T11:49:25.324Z","2026-11-13T11:49:25.371Z","georgij-vlasov",{"id":48,"documentId":49,"name":50,"alternativeText":51,"caption":51,"width":52,"height":52,"formats":51,"hash":53,"ext":54,"mime":55,"size":56,"url":57,"previewUrl":51,"provider":58,"provider_metadata":51,"createdAt":59,"updatedAt":59,"publishedAt":59,"focalPoint":51},1359,"jt1gpp4kqcyzwuwfhzj1c1vc","Gosha_ab88bd0ec5.webp",null,96,"Gosha_ab88bd0ec5_972867885d",".webp","image\u002Fwebp",2.14,"\u002Fuploads\u002FGosha_ab88bd0ec5_972867885d.webp","local","2026-11-13T11:47:15.450Z",{"id":61,"documentId":62,"name":63,"alternativeText":51,"caption":51,"width":64,"height":65,"formats":66,"hash":99,"ext":54,"mime":55,"size":100,"url":101,"previewUrl":51,"provider":58,"provider_metadata":51,"createdAt":102,"updatedAt":102,"publishedAt":102,"focalPoint":51},1215,"wr5o5cky04nf48v9nt8rpzeb","cover-kak-ne-poteryat-integracziyu-s-docker-v-ide-posle-blokirovki-jetbrains.webp",1672,941,{"thumbnail":67,"large":75,"medium":83,"small":91},{"name":68,"hash":69,"ext":54,"mime":55,"path":51,"width":70,"height":71,"size":72,"sizeInBytes":73,"url":74},"thumbnail_cover-kak-ne-poteryat-integracziyu-s-docker-v-ide-posle-blokirovki-jetbrains.webp","thumbnail_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464",245,138,7.63,7632,"\u002Fuploads\u002Fthumbnail_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp",{"name":76,"hash":77,"ext":54,"mime":55,"path":51,"width":78,"height":79,"size":80,"sizeInBytes":81,"url":82},"large_cover-kak-ne-poteryat-integracziyu-s-docker-v-ide-posle-blokirovki-jetbrains.webp","large_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464",1000,563,43.55,43550,"\u002Fuploads\u002Flarge_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp",{"name":84,"hash":85,"ext":54,"mime":55,"path":51,"width":86,"height":87,"size":88,"sizeInBytes":89,"url":90},"medium_cover-kak-ne-poteryat-integracziyu-s-docker-v-ide-posle-blokirovki-jetbrains.webp","medium_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464",750,422,30.69,30694,"\u002Fuploads\u002Fmedium_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp",{"name":92,"hash":93,"ext":54,"mime":55,"path":51,"width":94,"height":95,"size":96,"sizeInBytes":97,"url":98},"small_cover-kak-ne-poteryat-integracziyu-s-docker-v-ide-posle-blokirovki-jetbrains.webp","small_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464",500,281,18.5,18504,"\u002Fuploads\u002Fsmall_cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp","cover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464",90.13,"\u002Fuploads\u002Fcover_kak_ne_poteryat_integracziyu_s_docker_v_ide_posle_blokirovki_jetbrains_4fb2804464.webp","2026-11-13T11:43:56.356Z",[104],{"id":105,"documentId":106,"title":107,"published":108,"weight":109,"slug":110,"createdAt":111,"updatedAt":112,"publishedAt":113,"color":51},4,"ap54riuwcv7sj63auhmb4i6d","Гайды",true,3,"guides","2026-11-12T11:20:31.298Z","2026-11-12T11:22:44.141Z","2026-11-12T11:22:44.122Z",{"pagination":115},{"page":116,"pageSize":117,"pageCount":116,"total":116},1,25,{"data":119,"meta":138},[120,126,132],{"published_date":121,"id":122,"documentId":123,"title":124,"slug":125},"2026-09-28",327,"lruxexelyn19uak89r6dney5","Что такое OpenSpec? Полный гайд по Spec-Driven Development","chto-takoe-openspec-polnyj-gajd-po-spec-driven-development",{"published_date":127,"id":128,"documentId":129,"title":130,"slug":131},"2026-09-01",400,"dskd9jsck2vjm1d0ztoz91uo","JavaScript и TypeScript в OpenIDE: Node.js, React, Angular, Git и работа с API","javascript-i-typescript-v-openide",{"published_date":133,"id":134,"documentId":135,"title":136,"slug":137},"2026-08-06",363,"x62phzooqpahmwnv33cijbmm","DB-клиент OpenIDE: от подключения к базе до EXPLAIN и экспорта данных","db-klient-openide-ot-podklyucheniya-k-baze-do-explain-i-eksporta",{"pagination":139},{"page":116,"pageSize":109,"pageCount":140,"total":141},6,16,1794584598253]