如何将spring boot app部署到docker

时间:2017-10-05 09:14:07

标签: spring maven docker spring-boot

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

我更改了应用,以便通过向war添加<packaging>war</packaging>来创建pom.xml文件。我还关注了这篇文章:将Spring Boot应用程序部署到Docker以创建初始化程序:

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时,它没有做任何事情,当我导航到根网址时出现404错误。我还缺少什么?我检查了服务器日志,没有错误或失败,所以我不确定在哪里查看。

使用过的工具是:

  • docker 17.06
  • jdk 1.8
  • Maven 3.5.0
  • Sping Boot 1.5.7

1 个答案:

答案 0 :(得分:0)

这是您的应用程序的Docker文件(放在src-&gt; main-&gt; 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文件。