我正在docker容器中运行一个spring-boot应用程序作为后端应用程序。我希望能够在容器中执行,并启动shellMethod来执行一些管理内容。是否可以在运行时在容器中启动和停止shell会话?
Spring Shell提供交互式Shell和非交互式模式。
假设Spring Boot 3.0.0和Spring Shell 3.0.0-M3或更新版本:
如果你有这样的命令:
@ShellComponent
public class Cli {
@ShellMethod("Hello world")
public String hello(@ShellOption(defaultValue = "world") String arg1){
return "Hello " + arg1 + "!!";
}
}
然后使用spring-boot-maven插件创建demo:0.0.1-SNAPSHOT
,例如:
./mvnw -Pnative clean spring-boot:build-image -DskipTests
您可以直接针对docker映像执行命令,如下所示:
$ docker run -it demo:0.0.1-SNAPSHOT hello FishingIsLife
获取:
Hello FishingIsLife
因此,您不需要启动/停止shell会话,只需使用SpringShell的非交互式模式即可。