【问题标题】:Dockerizing Spring ApplicationDockerizing Spring 应用程序
【发布时间】:2016-09-07 06:42:27
【问题描述】:

我有一个使用 Spring Framework + AngularJs 前端的工作应用程序。 我之前确实将它部署在亚马逊 AWS 上,只需将 mvn package 打包到 .war 文件中。

现在我需要在本地的 docker 中设置一个 linux 环境来调试一些额外的功能(使用 windows 作为主操作系统),并且最好在将来部署这个 docker 容器。

我确实看过一些关于 dockerizing Spring Boot 应用程序的文章。

这是来自spring.io的示例dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gs-spring-boot-docker-0.1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

我的问题是 - 如何在 docker 容器上运行我的 .war 文件?

【问题讨论】:

    标签: java spring maven docker dockerfile


    【解决方案1】:

    如果您希望在本地 Linux 机器上运行此应用程序,则可以在 WAR 文件所在的同一目录中创建此 Dockerfile。

        FROM tomcat:8.0.21-jre8
        RUN [“rm”, “-rf”, “/usr/local/tomcat/webapps/ROOT”] 
        COPY dbconnect.war /usr/local/tomcat/webapps/ROOT.war
        CMD [“catalina.sh”, “run”]
    

    然后您可以构建 Docker 映像并提供您的自定义标签:

         docker build -t <your-username>/tomcat-example:latest . 
    

    终于可以运行这个容器了。

         docker run -p 8080:8080 -d --name tomcat  <your-username>/tomcat-example:latest
    

    如果需要使用数据库或 Web 服务器运行此应用程序,您可以在此处查看这些详细示例。

    https://github.com/dchqinc/dchq-docker-java-example

    https://dzone.com/refcardz/java-containerization

    【讨论】:

      【解决方案2】:

      您不会在 docker 中部署 .war 文件,就像将其部署到 tomcat 服务器中一样。您需要有一个main(String args[]) 入口点,该入口点也在您的 jar 清单文件中指定。您指定为ENTRYPOINTapp.jar 然后将运行您的main()。在 main() 中,您可以运行一个嵌入式 Web 服务器来运行您的应用程序。

      【讨论】:

      • 您能否举例说明main(String args[]) 的外观。
      • 实际上这一切看起来应该是什么样子。我希望这个问题对其他人有用
      【解决方案3】:

      如果您将 Spring Boot 应用程序配置/打包为可执行的 .jar 而不是 .war(如果您选择 .jar 选项,Spring Boot Initializr 将为您执行此操作),那么在您的容器中运行它是一个问题添加一个入口点以使用 -jar 和您的 jar 名称运行 java,例如

      ENTRYPOINT ["java", "-jar", "/opt/yourapp-0.0.1-SNAPSHOT.jar"]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-17
        • 2016-07-13
        • 2021-09-04
        • 2021-09-30
        • 2019-06-08
        • 2020-09-02
        • 1970-01-01
        • 2020-10-08
        相关资源
        最近更新 更多