2017-10-05 44 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文件。