Springboot2 Vue 前后端分離 整合打包 docker鏡像


  項目使用springboot2和Vue前后端分離開發模式,再整合,容器化部署。

  主要說明下大體的流程,掃除心里障礙,期間遇到的問題請自行解決。

  首先說下Vue打包:

  1、在Vue項目目錄下運行命令打包:npm run build:prod --report

  生成需要使用的dist文件,打包后會出現在項目目錄下。(目錄結構可能會不同)

  

       按照如下方式整合到springboot項目中,resources在main目錄下。

  (結構不同的話)一樣拆到static目錄下,static下面直接跟img、css、js等

  

       注意static文件的層級位置,app.js、favicon.ico、index.html在static目錄下。

  配置好以后,先本地運行下,確保能正常訪問並請求接口。

  我遇到了靜態資源不能訪問的問題:在java中加入如下代碼后正常(上網搜的)

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class LocalConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
} 

  2、打成jar包,我使用的是maven方式,在此不詳述。

  3、使用docker打包成鏡像

  

   將jar包和Dockerfile文件放在一個目錄下。Dockerfile內容文件如下:

FROM java:8
VOLUME /tmp
COPY personnel.jar app.jar
RUN bash -c "touch /app.jar"
EXPOSE 9100
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=test", "--server.port=9100", "/log/app.log"]

  java:8              Java版本號

  COPY personnel.jar app.jar      復制jar包為app.jar

  9100                是項目端口號

       其它的設置不用修改,具體的含義我也不清楚,望不吝賜教。

  在當前目錄執行命令:

  docker build -t project-name .    打包命令 注意有個``.`` (首次打包會比較慢)

  docker images            查看image命令

     docker run -d -p 8080:9100 project-name

  運行Image命令,9100是項目接口,8080是鏡像端口,鏡像運行后使用localhost:8080訪問。

  我們項目是直接把鏡像推到阿里雲容器中,阿里雲上有現成的推送代碼,不再贅述。

  簡單的流程,希望能幫助找到方向。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM