加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

基于 Spring Cloud 与 Vue.js 的前后端一站式陈设

发布时间:2019-11-01 21:04:56 所属栏目:建站 来源:老马
导读:本文将带各人从一台全新的 CentOS 处事器开始,陈设一套完备的前后端疏散项目。操纵步调很是具体,新手友爱型文章~ 后端技能栈:Spring Cloud 微处事架构 + Redis + RabbitMQ + MySQL; 前端技能栈:Vue + ElementUI; 陈设器材:后端用 Docker 容器化陈设,

那这些变量是在哪配置的呢?待会儿编写 Dockerfile 的时辰就可以看到,会在 Dockerfile 里配置这几个变量为情形变量,当启动 Docker 容器的时辰,措施就会读取到 Dockerfile 中配置的值并应用到项目中。

编写Dockerfile

下面是 education 模块的 Dockerfile:

  1. FROM java:8 
  2. VOLUME /tmp 
  3. ADD education.jar app.jar 
  4. RUN bash -c 'touch /app.jar' 
  5.  
  6. ENV SPRING-CLOUD-EUREKA-ZONE http://123.456.789.10:8761/eureka/ 
  7. ENV SPRING-CLOUD-MYSQL-HOST 123.456.789.10 
  8. ENV SPRING-CLOUD-DB-NAME edu 
  9. ENV SPRING-CLOUD-RABBIT-MQ-HOST 123.456.789.10 
  10. ENV SPRING-CLOUD-REDIS-HOST 123.456.789.10 
  11.  
  12. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 
  13. EXPOSE 8899 

简朴的表明下每句话的浸染:

  • FROM java:8:指定基本镜像,必需为第一个呼吁
  • VOLUME /tmp:用于指定耐久化目次
  • ADD education.jar app.jar:将当地文件 education.jar 添加到容器中并定名为 app.jar。留意这里的 education.jar 要换成你本身项目打包出来的 jar 包名字,假如你打的包名字叫 abc.jar,那应该这么写:ADD abc.jar app.jar。
  • RUN bash -c 'touch /app.jar':在镜像容器中执行的呼吁,运行 jar 包。
  • ENV:这几行以 ENV 开头的是配置情形变量,还记得上面 application-pro.yml 文件里的那几个 ${} 变量吗?就是在这里配置的。把该填地点的处所都换成这台处事器的公网 IP 地点,本设置假设你处事器的地点是 123.456.789.10 ,用的时辰把这个地点换成你本身处事器地点即可。
  • ENTRYPOINT:设置容器,使其可执行化。
  • EXPOSE 8899:对外袒露 8899 端口。这个端口要和项目标设置文件中 server.port 配置的端口同等。

总结一下,Dockerfile 文件你要改的,只有三个处所:

  • 第三行 education.jar 换成你打包出来的 jar 包名字
  • ENV 开头的情形变量本身按照 application-pro.yml 的设置举办配置
  • 最后一行 EXPOSE 8899 改成你项目标端标语

再贴一个模块的 Dockerfile 作比拟:

  1. FROM java:8 
  2. VOLUME /tmp 
  3. ADD gateway.jar app.jar 
  4. RUN bash -c 'touch /app.jar' 
  5.  
  6. ENV SPRING-CLOUD-EUREKA-ZONE http://123.456.789.10:8761/eureka/ 
  7. ENV SPRING-CLOUD-REDIS-HOST 123.456.789.10 
  8.  
  9. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 
  10. EXPOSE 8888 

凭证这种要领,把每个必要打包的微处事项目标 Dockerfile 写好。

打包

设置好三个 applicaiton.yml 和 Dockerfile(着实打包这一步用不到 Dockerfile),在项目标根目次下执行以下呼吁打包:

  1. mvn clean package -Dmaven.test.skip=true 

看到节制台输出 SUCCESS 则打包乐成:

基于 Spring Cloud 与 Vue.js 的前后端一站式陈设

打完的包在项目目次/target 里,如图:

基于 Spring Cloud 与 Vue.js 的前后端一站式陈设

搜查一下 jar 包的巨细,假如是好几十 M 就没啥题目,假如是几百 K 那就是打包设置有题目,搜查 pom.xml 文件的 标签设置是否正确。

附 <build>设置:

  1. <build> 
  2. <plugins> 
  3.   <plugin> 
  4.     <groupId>org.springframework.boot</groupId> 
  5.     <artifactId>spring-boot-maven-plugin</artifactId> 
  6.     <executions> 
  7.       <execution> 
  8.         <goals> 
  9.           <goal>repackage</goal> 
  10.         </goals> 
  11.       </execution> 
  12.     </executions> 
  13.   </plugin> 
  14.   <plugin> 
  15.     <groupId>org.springframework.boot</groupId> 
  16.     <artifactId>spring-boot-maven-plugin</artifactId> 
  17.   </plugin> 
  18. </plugins> 
  19. <finalName>education</finalName> 
  20. </build> 

编写自动化剧本

写完 Dockerfile 文件还要执行呼吁打包成 image 镜像,还必要运行起容器,两行代码固然不多但每次写照旧贫困,把它封装成一个 sh 剧本,每次直接运行剧本省时省力。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读