@TOC

1、关于端口

在实际项目中,部署在不同IP地址的服务器上,所以可以删掉配置文件的关于不同端口的配置

项目应该部署到同一个局域网的网段,且建议使用网络别名,否则一旦改变IP地址则容易出现问题

2配置文件

先将配置文件恢复到正常状态
示例

server:port: 7776
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/register-with-eureka: truefetch-registry: true
spring:application:name: eureka-serversecurity:basic:enabled: trueuser:name: rootpassword: 123456

3/依赖

之前

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

改后

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径,启动类,可以点出来--><configuration><mainClass>com.EurekaServerApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><directory>src/main/resources</directory></resource></resources></build>

如果有前端可以加上这一段


clean,出现build success

双击

如果正常打包,出现如下两种文件

在host文件添加主机
将jar包放到一个临时文件夹,打开cmd


访问注册中心

能够启动表示正常

4/Dockerfile

修改相关jar包名称
最下面两行取其一,意思相近,启动jar包

#
# 注册中心
#
FROM centos7:jdk8ADD eureka-server-1.0.jar /usr/local/eureka-server-1.0.jar
WORKDIR /usr/localRUN bash -c 'touch eureka-server-1.0.jar'#ENTRYPOINT ["java","-server","-Xms64m","-Xmx128m","-jar","eureka-server-1.0.jar"]
CMD java -jar /usr/local/eureka-server-1.0.jar

启动虚拟机,将jar包上传到虚拟机中

打开portainer,创建网络

创建镜像

创建容器,只要在当前网络里,都可以用别名访问容器

普通项目

父项目

依赖

子项目

build依赖

不涉及到xml则不用加

公共组件,加一个启动类(本质不需要,但是打包要加上),依赖configuration必须加,不加即使打包成功,也无法引用,只要是被被人作为依赖引用,就必须加

注册中心需要别名,其他项目可以不设,因为其他项目是通过注册中心调用的

注册中心的打包和部署

打包

在pom.xml文件下加上

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com</groupId><artifactId>eureka-server</artifactId><version>1.0</version><name>eureka-server</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><略></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--重点--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径:启动类--><configuration><mainClass>com.EurekaServerApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><!--如果有资源文件夹--><resources><resource><directory>src/main/resources</directory></resource></resources></build>
</project>

application.yml配置

server:port: 7776
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/register-with-eureka: truefetch-registry: true
spring:application:name: eureka-serversecurity:basic:enabled: trueuser:name: rootpassword: 123456

打包

表示成功

双击package

打包成功

测试

java -jar eureka-server-1.0.jar



有两个server,打包成功

部署

打开虚拟机上传jar包和Dockerfile文件
Dockerfile,以下文件需要修改jar包名称,最下两行选其一(作用差不多)

#
# 注册中心
#
FROM centos7:jdk8ADD eureka-server-1.0.jar /usr/local/eureka-server-1.0.jar
WORKDIR /usr/localRUN bash -c 'touch eureka-server-1.0.jar'#ENTRYPOINT ["java","-server","-Xms64m","-Xmx128m","-jar","eureka-server-1.0.jar"]
CMD java -jar /usr/local/eureka-server-1.0.jar
# 创建镜像
docker build -t eureka-server ./eureka-server


#创建2个注册中容器. 注:设置容器别名
#内部:外部端口  网络  应用 应用别名
docker run -d -p 7776:7776 --network demo --network-alias server1 --name eureka-server1 eureka-server
docker run -d -p 7777:7776 --network demo --network-alias server2 --name eureka-server2 eureka-server


普通项目的打包和部署

父项目

    <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

公共组件

即使没有用,也需要添加一个启动类

依赖

 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><configuration><!--启动类--><mainClass>com.CommonApplication</mainClass><!--公共组件被引用--><classifier>exec</classifier></configuration></plugin></plugins></build>

如果不添加,公共组件打包之后将无法被引用
无论哪个包,只要被别人引用,就要添加以下代码

 <configuration><classifier>exec</classifier>
</configuration>

provider

pom文件

  <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径--><configuration><mainClass>com.ProviderUserApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><directory>src/main/webapp</directory><targetPath>META-INF/resources</targetPath></resource><resource><directory>src/main/resources</directory></resource><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>

yml文件
注意:此处的数据库是创建的容器的别名

server:port: 8081
spring:application:name: p-userdatasource:type: com.alibaba.druid.pool.DruidDataSourceurl: jdbc:mysql://mysql:3306/market?characterEncoding=utf-8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456druid:driver-class-name: com.mysql.jdbc.Driver
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/

consumer

 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><!--这里写上main方法所在类的路径--><configuration><mainClass>com.ConsumerUserApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><!--页面--><resource><directory>src/main/webapp</directory><targetPath>META-INF/resources</targetPath></resource><!--资源文件夹--><resource><directory>src/main/resources</directory></resource><!--mapper映射文件--><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>

yml文件

server:port: 8180
spring:application:name: c-user
eureka:client:service-url:defaultZone: http://root:123456@server1:7776/eureka/,http://root:123456@server2:7776/eureka/
feign:hystrix:enabled: true

MySQL设置远程连接

创建数据库容器docker run -d -p 3306:3306 --network demo --network-alias mysql --name mysql mysql
然后创建远程连接的许可

1. 使用root账号登录mysqlmysql -uroot
2. 授权GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
3. 重启容器

在sqlyog连接创建的数据库,并运行项目的SQL文件

打包

总项目:clean-compile编译-install-package



测试


Docker文件

#
# user消费者
#
FROM centos7:jdk8ADD consumer-user-0.0.1-SNAPSHOT.jar /usr/local/consumer-user-0.0.1-SNAPSHOT.jar
WORKDIR /usr/localRUN bash -c 'touch consumer-user-0.0.1-SNAPSHOT.jar'#ENTRYPOINT ["java","-server","-Xms64m","-Xmx128m","-jar","consumer-user-0.0.1-SNAPSHOT.jar"]
CMD java -jar /usr/local/consumer-user-0.0.1-SNAPSHOT.jar

上次jar包和docker文件到虚拟机

/* 消费者 */
#创建镜像
docker build -t user-consumer ./user-consumer
#创建容器
docker run -d -p 8180:8180 --network demo --name user-consumer1 user-consumer
docker run -d -p 8181:8180 --network demo --name user-consumer2 user-consumer

将provider和consumer都部署好之后,访问测试一遍

idea项目打包和部署相关推荐

  1. spring项目搭建云服务器,Spring Boot项目打包并部署到云服务器

    Spring Boot项目打包并部署到云服务器 一.云服务器的环境 OS: CentOS 7 Jdk 1.8 Spring Boot自动集成Tomcat,不需要单独配置 二.本地Spring Boot ...

  2. SpringBoot 部署: 项目打包 手动部署到阿里云服务器上

    SpringBoot 部署: 项目打包 & 手动部署到阿里云服务器上 文章目录 SpringBoot 部署: 项目打包 & 手动部署到阿里云服务器上 前言 正文 1. 环境准备 &am ...

  3. Vue 学习笔记(4)Vue-cli4 项目搭建 + 目录结构 + 项目打包、部署

    VueCLI 脚手架 Vue CLI 介绍 Vue CLI 安装 Node.js 环境准备 安装 Vue 脚手架 第一个 Vue 脚手架项目 命令创建项目 图形化界面创建项目 vue-cli4 目录结 ...

  4. JAVA 项目打包和部署一站式解决方案

    文章目录 一.场景描述 二.打包方式 场景方式一:常规 MAVEN 零散项目打包部署方式 场景方式二:常规 MAVEN 集中项目打包部署方式 场景方式三:借助 spring-boot 插件进行打包部署 ...

  5. 来自一枚rookie的项目开发——vite下的vue3+ts的项目打包及部署

    Vite下Vue3.0+Typescript项目打包 正常的打包操作 npm run build // package.json ..."scripts": {"dev& ...

  6. vue项目打包后部署到服务器(超详细步骤)

    耽误了几天, 终于开始写第二篇博客了, 这篇会讲怎么将vue项目打包部署到服务器, 其实和上一篇的uni-app步骤一样的, 就是最后多了一步修改nginx配置, 好 , 上操作 一 ,打包项目 vs ...

  7. 记录第一次成功将vue项目打包并部署到centos云服务器上并访问(包含多个vue项目部署nginx配置说明)

    文章目录 准备 vue项目打包 配置服务器 使用xshell 使用xftp 当项目更新时操作 小结 准备 vscode:用于打包vue项目(需要提前安装好node与npm,推荐使用mvn管理node, ...

  8. uniapp项目打包与部署云服务器

    uniapp项目的打包 第一步,在manifest里面配置好基础路径和端口 然后进行发布,填好自己的云服务器域名 打包成功后,项目在如图h5路径下,拿着h5文件的压缩包就可以去部署了 第二步,你要有一 ...

  9. 【前端部署】vue项目打包并部署到Linux服务器

    文章目录 一.打包vue前端项目 二.安装nginx 1.下载及安装 2.启动程序 3.其他命令 三.利用WinSCP传输文件 四.配置nginx 1.修改服务器端口 2.修改dist存放路径 3.完 ...

最新文章

  1. 配置 php-fpm 监听的socket
  2. Swift for循环:用于索引,数组中的元素?
  3. c# timer使用
  4. 分拣外观残缺的机器人_中国鞋业高峰论坛大咖云集,国辰机器人解读“鞋业智造”...
  5. 超实用!从0到1教你打造一个令人上瘾的聊天机器人
  6. CycleGAN:图片风格,想换就换 | ICCV 2017论文解读
  7. 【UVA1638】杆子的排列
  8. 图模型在信息流推荐系统中的原理和实践
  9. java filechannel 性能_FileChannel 和 MappedByteBuffer 实现上有什么不同?为什么性能差这么多?...
  10. Git1天打卡 day13-查看仓库文件改动状态
  11. 廖雪峰Java1-1Java入门-java简介
  12. 行间事件传this的问题:
  13. python查看类的属性和方法_python—类的属性和方法总结
  14. 易班显示服务器错误,易班常见问题汇总
  15. 推荐一款免费的SSH+sftp工具
  16. 江苏海洋大学c语言期末考试题库,海南热带海洋学院18级C语言期末考试PAT编程题...
  17. office 2007插入带圈字符
  18. C语言求:哥尼斯堡七桥问题
  19. 【FPGA】四、按键消抖
  20. 微信支付V3版商家转账到零钱

热门文章

  1. 陌陌八成营收靠直播 直播行业已进入两极分化
  2. 电缆故障测试仪的基本原理与组成——TFN DG15M电缆故障测试仪
  3. Word2vec 计算两个文本之间相似度
  4. CSS单位之vw、vh、vmin、vmax、%
  5. 小米手机用什么耳机音质好?发烧级音质蓝牙耳机推荐
  6. matlab中的subplot函数
  7. [ Oracle EBS ] 资产 摊销调整、累计折旧等介绍
  8. 植树节汇报之后的突发奇想
  9. 2021-07-08图书借阅管理系统
  10. 原生webgl学习(六) WebGL写简单的汉字(一)