2017-10-05 99 views
0

我正在尝试将Spring-Boot应用部署到Docker。本来我的应用程序编译成jar,所以我有一个带有@SpringBootApplication注解的主类。在本地,一切正常。如何将春季启动应用部署到泊坞窗

我更改了应用程序,以便通过将<packaging>war</packaging>添加到我的pom.xml来创建war文件。我也跟着这个帖子:配置弹簧引导应用多克尔创建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它没有做任何事情,我得到404错误,当我浏览到根网址。我还有什么遗漏?我检查了服务器日志,没有错误或失败,所以我不知道还有什么地方需要注意。

使用的工具有:

  • 搬运工17.06
  • JDK 1.8
  • 的Maven 3.5.0
  • 自旋微观引导1.5.7
+0

如果你想使用WAR包装,你应该考虑使用tomcat。你在你的容器里正确地配置了你的tomcat吗? –

+0

为什么你将包装从'jar'改成'war'? – Tome

回答

0

这里是泊坞提交您的申请(放在src-> main-> docker中);

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

ADD @[email protected] /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文件。