1

是否可以在Docker Gradle容器中运行Gretty项目?

通常 Gretty 任务tomcatRun会启动 Tomcat 应用程序服务器,您可以在http://localhost:8080/app-name浏览应用程序。使用 Docker Gradle 映像,任务成功启动,但容器在此之后立即终止。

重现问题的步骤:

  1. 安装 Docker
  2. 克隆https://github.com/haba713/hello_gretty
  3. cd hello_gretty
  4. 安装 Gradle 包装器: docker run --rm -u gradle -v "$PWD":/home/gradle/project -w /home/gradle/project gradle gradle wrapper
  5. 运行任务tomcatRun./gradlew tomcatRun
  6. 浏览http://localhost:8080/hello_gretty
  7. 在终端中按回车键终止任务。
  8. tomcatRun使用 Gradle Docker 映像 运行任务:docker run --rm -u gradle -p 8080:8080 -v "$PWD":/home/gradle/project -w /home/gradle/project gradle gradle tomcatRun
  9. 任务tomcatRun已启动(需要一些时间),但由于某种原因,容器在此之后立即终止。也许任务在没有按任何键的情况下完成了。

我还创建了一个关于该问题的Docker问题。

4

1 回答 1

0

添加-t--tty命令docker使 Tomcat 保持运行。还添加-i或者--interactive如果您想使用“任意键”停止 Tomcat,如 Gretty 所说:“按任意键停止服务器。”

docker run --rm -u gradle -it -p 8080:8080 -v "$PWD":/home/gradle/project -w /home/gradle/project gradle gradle tomcatRun

谢谢大卫迷宫的帮助。

于 2020-01-26T17:04:10.207 回答