【问题标题】:How to deploy spring boot app to docker如何将 Spring Boot 应用程序部署到 docker
【发布时间】:2018-03-16 20:26:26
【问题描述】:

我正在尝试将Spring-Boot 应用程序部署到Docker。最初我将应用程序编译成jar,所以我有一个带有@SpringBootApplication 注释的主类。在本地,一切正常。

我更改了应用程序,以便通过将<packaging>war</packaging> 添加到我的pom.xml 来创建一个war 文件。我还关注了这篇文章:Deploy Spring Boot app to Docker to create the initalizer:

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class MyFirstBootApp extends SpringBootServletInitializer {
    @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyFirstBootApp.class);
    }
}

现在,当我将应用程序部署到 Docker 时,它不会执行任何操作,当我导航到根 url 时出现 404 错误。我还缺少什么?我检查了服务器日志,没有错误或故障,所以我不知道该去哪里找。

使用的工具有:

  • 码头工人 17.06
  • jdk 1.8
  • Maven 3.5.0
  • Sping Boot 1.5.7

【问题讨论】:

  • 如果要使用WAR打包,应该考虑使用tomcat。您是否在容器中正确配置了您的 tomcat?
  • 为什么将包装从 jar 更改为 war

标签: spring maven docker spring-boot


【解决方案1】:

这是你的应用程序的 Docker 文件(放在 src->main->docker 中);

FROM openjdk:8-jre-alpine
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
JAVA_OPTS=""

ADD @project.build.finalName@.war /app.war

EXPOSE 8080
CMD echo "The application starting..." && \
java ${JAVA_OPTS} -Djava.security.egd=file:/habil/./urandom -jar /app.war

如果你需要mysql之类的东西,你需要为docker创建.yml或.properties文件。

【讨论】:

    猜你喜欢
    • 2021-07-25
    • 2021-05-21
    • 2015-01-25
    • 2018-10-31
    • 2014-05-03
    • 2016-01-16
    • 2021-08-17
    • 2015-01-03
    • 2017-09-30
    相关资源
    最近更新 更多