Skip to content

Commit a66f465

Browse files
committed
feat(container): add dev container support and integrate Docker gateway #306
Add support for Docker container development by integrating the `devContainerPlugin` and creating the `exts:ext-container` module. This includes new service classes and dependencies to enable container-based workflows.
1 parent bc86beb commit a66f465

File tree

9 files changed

+46
-0
lines changed

9 files changed

+46
-0
lines changed

build.gradle.kts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ project(":") {
264264
pluginModule(implementation(project(":exts:ext-dependencies")))
265265
pluginModule(implementation(project(":exts:ext-endpoints")))
266266
pluginModule(implementation(project(":exts:ext-plantuml")))
267+
pluginModule(implementation(project(":exts:ext-container")))
267268
pluginModule(implementation(project(":exts:devins-lang")))
268269

269270
testFramework(TestFrameworkType.Bundled)
@@ -288,6 +289,7 @@ project(":") {
288289
implementation(project(":exts:ext-dependencies"))
289290
implementation(project(":exts:ext-plantuml"))
290291
implementation(project(":exts:ext-endpoints"))
292+
implementation(project(":exts:ext-container"))
291293
implementation(project(":exts:devins-lang"))
292294

293295
kover(project(":core"))
@@ -638,6 +640,17 @@ project(":exts:ext-plantuml") {
638640
}
639641
}
640642

643+
project(":exts:ext-container") {
644+
dependencies {
645+
intellijPlatform {
646+
intellijIde(prop("ideaVersion"))
647+
intellijPlugins(ideaPlugins + prop("devContainerPlugin"))
648+
}
649+
650+
implementation(project(":core"))
651+
}
652+
}
653+
641654
project(":exts:ext-endpoints") {
642655
dependencies {
643656
intellijPlatform {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package cc.unitmesh.container
2+
3+
import cc.unitmesh.devti.provider.RunService
4+
import com.intellij.execution.configurations.RunProfile
5+
import com.intellij.openapi.project.Project
6+
import com.intellij.openapi.vfs.VirtualFile
7+
8+
class RunContainerService : RunService {
9+
override fun isApplicable(project: Project, file: VirtualFile): Boolean {
10+
return false
11+
}
12+
13+
override fun runConfigurationClass(project: Project): Class<out RunProfile>? {
14+
return null
15+
}
16+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<idea-plugin package="cc.unitmesh.container">
2+
<!--suppress PluginXmlValidity -->
3+
<dependencies>
4+
<plugin id="org.jetbrains.plugins.docker.gateway"/>
5+
</dependencies>
6+
7+
<extensions defaultExtensionNs="cc.unitmesh">
8+
<runService implementation="cc.unitmesh.container.RunContainerService"/>
9+
</extensions>
10+
</idea-plugin>

gradle-223.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ rustPlugin=org.rust.lang:0.4.185.5086-222
2020
# https://plugins.jetbrains.com/plugin/9568-go/versions
2121
goPlugin=org.jetbrains.plugins.go:223.7571.182
2222
endpointsPlugin=
23+
devContainerPlugin=
24+
2325
swaggerPlugin=com.intellij.swagger:223.7571.125
2426
vuePlugin=org.jetbrains.plugins.vue:223.7571.176

gradle-233.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ rustPlugin=com.jetbrains.rust:233.21799.284
1717

1818
pythonPlugin=PythonCore:233.11799.196
1919
jupyterPlugin=intellij.jupyter:233.11799.196
20+
devContainerPlugin=org.jetbrains.plugins.docker.gateway:233.11799.180
2021

2122
# https://plugins.jetbrains.com/plugin/9568-go/versions
2223
goPlugin=org.jetbrains.plugins.go:233.11799.196

gradle-241.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ goPlugin=org.jetbrains.plugins.go:241.14494.240
2121

2222
pythonPlugin=PythonCore:241.14494.240
2323
jupyterPlugin=intellij.jupyter:241.14494.240
24+
devContainerPlugin=org.jetbrains.plugins.docker.gateway:241.14494.189
2425

2526
endpointsPlugin=com.intellij.microservices.ui:241.14494.150
2627
swaggerPlugin=com.intellij.swagger:241.14494.150

gradle-243.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ goPlugin=org.jetbrains.plugins.go:243.21565.211
2020
# https://plugins.jetbrains.com/plugin/7322-python-community-edition/versions
2121
pythonPlugin=PythonCore:243.21565.211
2222
jupyterPlugin=intellij.jupyter:243.21565.193
23+
devContainerPlugin=org.jetbrains.plugins.docker.gateway:243.21565.122
2324

2425
endpointsPlugin=com.intellij.microservices.ui:243.21565.122
2526
swaggerPlugin=com.intellij.swagger:243.21565.122

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ include(
2727
"exts:ext-endpoints",
2828
"exts:ext-vue",
2929
"exts:ext-dependencies",
30+
"exts:ext-container",
3031

3132
// the Input Language support for AutoDev
3233
"exts:devins-lang"

src/main/resources/META-INF/plugin.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,6 @@
4242
<module name="cc.unitmesh.endpoints"/>
4343
<module name="cc.unitmesh.vue"/>
4444
<module name="cc.unitmesh.dependencies"/>
45+
<module name="cc.unitmesh.container"/>
4546
</content>
4647
</idea-plugin>

0 commit comments

Comments
 (0)