【问题标题】:Docker file for java projectjava项目的Docker文件
【发布时间】:2016-10-20 09:29:40
【问题描述】:

我有一个项目,它使用了 Mave+spring+hibernate+mysql 数据库,我想为这个项目创建一个 docker 镜像。我用这两个命令做到了

$ mvn package docker:build $ docker push name/name

我可以创建图像,但我目前没有主函数,所以当我尝试运行图像时,它给出了错误,没有找到主函数。我知道它应该有一个,但我不知道怎么做。我目前通过右键单击->运行方式->在服务器上运行来运行该项目。我正在使用弹簧工具套件。我怎样才能创建一个做同样事情的主要功能?那么当我尝试运行我的 docker 镜像时,它会好吗?

当前的 Docker 文件:

FROM java:7
ADD name-ws.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

【问题讨论】:

  • 发布你的 docker 文件。
  • 我编辑了问题。
  • 它确实构建并且我可以运行图像,但它正在寻找我的项目中没有的主要功能。我使用spring工具套件右键单击->在服务器上运行该项目,并且在本地一切正常
  • app.jar 是可执行的 jar 文件吗?
  • 它没有给出主要的清单属性,错误

标签: java spring maven docker dockerfile


【解决方案1】:

您使用的 docker 文件旨在运行 spring boot 应用程序,这是一种部署 spring 应用程序的方式,其中包括一个 jar 中的嵌入式 Web 服务器。

包含用于 Spring Boot 的 Maven 工件可能是您前进的最短路径。你最终会得到一个看起来像这样的类:

@SpringBootApplication
public class RestApplication  {


  public static void main(final String... args) throws Exception {
    ApplicationContext ctx  = SpringApplication.run(RestApplication.class, args);
  }

如果这不是您想要做的,那么您可以使用 docker 映像在 tomcat、jetty 或其他任何地方执行您的应用程序。那里有很多,只需选择一个。

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2015-06-24
    相关资源
    最近更新 更多