date: 2018-11-19 15:30:11

updated: 2018-11-21 08:28:37

Spring Boot打包部署

第一种方式 打包成jar包部署在服务器上

1.1 添加插件

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

1.2 打包

点开lifecycle 双击install 自动开始打包

1.3 放到linux服务器上,使用 java -jar SCM-v1.0.jar 命令运行

1.4 报错:8080端口被占用

Verify the connector's configuration, identify and stop any process that's listening on port 8080, or configure this application to listen on another port.

使用 lsof -i tcp:8080 命令来查看8080使用情况

解决:

①kill -9 进程的PID号 命令 杀死进程

②在application.properties文件中添加 server.port=8004 修改内置tomcat默认端口

第二种方式 使用Docker打包成镜像文件

2.1 在pom.xml -- properties 中添加以下内容

prefix 必须小写字母或者包含数字的字符串,不可以是大写!!!

<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>

2.2 在pom.xml文件中添加docker插件

<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->

2.3 在src/main/docker文件夹下创建Dockerfile文件,Dockerfile 文件用来说明如何来构建镜像

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD scm-v1.0.jar scm.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/scm.jar"]

上面两个 scm.jar 的名字必须是一致的

这个 Dockerfile 文件很简单,构建 Jdk 基础环境,添加 Spring Boot Jar 到镜像中,简单解释一下:

  1. FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
  2. VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
  3. ADD ,拷贝文件并且重命名
  4. ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

2.4 构建docker环境

yum install docker

2.5 安装jdk

yum -y install java-1.8.0-openjdk*

配置环境变量 打开 vim /etc/profile 添加一下内容

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export PATH=$PATH:$JAVA_HOME/bin

修改完成之后,使其生效

source /etc/profile

输入java -version 返回版本信息则安装正常。

2.6 安装maven

首先配置Apache源

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

使用yum安装

yum -y install apache-maven

2.7 将完整的项目文件打包为zip文件,上传到linux下

进入到项目路径下进行打包测试

#打包
mvn package
#启动
java -jar target/spring-boot-docker-1.0.jar

运行之后输入ip:端口号进行测试

成功之后使用Dockerfile构建镜像文件

必须先使用 mvn package 打包之后才能使用 docker:build 因为docker构建镜像需要把打包的jar文件复制到镜像中!!!需要管理员权限!!!

2.8 构建镜像

mvn package docker:build

注:docker构建镜像时会从34.205.207.96下面拉openjdk,可能会超时,多试几次就好了

成功之后查看镜像文件

2.9 运行镜像文件

输入以下指令运行镜像文件

docker run -p 8004:8004 -t springbootdocker/scm

同时会自动创建对应的容器来运行镜像文件

-p: 端口映射,格式为:主机(宿主)端口:容器端口

容器端口号与application.properties中写的server.port一致

主机(宿主)端口号是要访问虚拟机或服务器的端口号

比如application.properties中

server.port=8004

如果是 docker run -p 8004:8004 -t springbootdocker/scm 就访问 服务器IP:8004/user/home启动

如果是 docker run -p 8080:8004 -t springbootdocker/scm 就访问 服务器IP:8080/user/home启动

Spring Boot打包部署的更多相关文章

  1. docker + spring boot 打包 部署。

    docker 安装 什么的 就不一一介绍了 不会安装百度一找一堆. 我这直接上代码. 首先你要有个spring boot项目. 然后打包.打包很简单 我打包的是 jar文件.直接在pom.xml文件里 ...

  2. spring boot打包部署到Linux环境

    打包部署说白了就两步:打包.部署.废话不多说,直接拿spring boot自动生成的项目骨架,再添加一个文件用来演示: package com.crocodile.springboot; import ...

  3. Spring Boot 打包部署

    一.打包成jar并部署 1.工程--右键选择运行配置: 在Goals中输入: org.apache.maven.plugins:maven-jar-plugin:.RELEASE:repackage ...

  4. spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)

    一.spring boot 内置tomcat配置https: 关于自签名证书可以看下上一篇 spring boot1 更详细的可以看转载 https://www.jianshu.com/p/8d4ab ...

  5. Spring Boot打包war jar 部署tomcat

    概述 1.Spring Boot聚合工程打包war部署Tomcat 2.Spring Boot打包Jar,通过Java -jar直接运行. 3.提供完整pom.xml测试项目 至github 4.项目 ...

  6. spring boot打包以及centos下部署

    spring boot打包以及部署 一.打包 springboot的打包方式有很多种.有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的.这里主要介绍如何打成j ...

  7. spring boot 打包war后 部署到外部 tomcat 的具体正确操作【包括修改端口 与 去除请求路径的工程名】

    1.前言 工程做好了,总不能放在idea运行吧?不然怎么把项目放到云服务器呢?[这一篇随笔不讲解发布的云服务器的操作,在其他随笔有详细记载.] 解决的方案是把springboot 工程 打包成war文 ...

  8. 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行

    实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...

  9. 一些坑 Java 执行命令行命令 Spring Boot 打包为jar ResourceUtils.getFile 等出现的问题

    Java 执行命令行命令 这个没技术含量的东西耗费了我半个多小时 String command = ....; Process process = Runtime.getRuntime().exec( ...

随机推荐

  1. Python练习题 034:Project Euler 006:和平方与平方和之差

    本题来自 Project Euler 第6题:https://projecteuler.net/problem=6 # Project Euler: Problem 6: Sum square dif ...

  2. 2.1 java语言概述

    链接:https://pan.baidu.com/s/1ab2_KapIW-ZaT8kedNODug 提取码:miao

  3. 02 ArcPython的使用大纲

    一.什么情况下使用ArcPython? 1.现有工具实现不了,可以用python 2.流程化需要时,可以使用python 3.没有AE等二次开发环境 4.其他特殊场景 二.ArcPython在ArcG ...

  4. Trie树【字典树】浅谈

    最近随洛谷日报看了一下Trie树,来写一篇学习笔记. Trie树:支持字符串前缀查询等(目前我就学了这些qwq) 一般题型就是给定一个模式串,几个文本串,询问能够匹配前缀的文本串数量. 首先,来定义下 ...

  5. 关于freemodbus协议中eMBFuncReadHoldingRegister()函数的所谓错误

    摘要:网上看到有好心的网友提示,freemodbus协议中的mbfuncholding.c 文件中eMBFuncReadHoldingRegister()函数,有一处错误,即:第185行的" ...

  6. STM32之旅2——按键

    STM32之旅2--按键     几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用.这里是最简单的独立按键驱动方法,和学习51单片机是的一样,更好的方 ...

  7. Android使用Mono c#分段列表视图

    下载source code - 21.7 KB 你想知道如何把多个ListView控件放到一个布局中,但是让它们在显示时表现正确吗 多个列表项?你对它们正确滚动有问题吗?这个例子将向你展示如何组合单独 ...

  8. SpringCache整合Redis

    之前一篇文章 SpringBoot整合Redis 已经介绍了在SpringBoot中使用redisTemplate手动 操作redis数据库的方法了.其实这个时候我们就已经可以拿redis来做项目了, ...

  9. 多测师讲解RF自动化测试实现流程_高级讲师肖sir

    1.环境搭建过程?­­整套环境需要哪些工具包,以及工具包的作用?因为我搭建的RF框架是基于Python的,所以肯定要先安装Python,python安装完之后,开始安装自动化测试框架rf3.0-在do ...

  10. 是时候更新手里的武器了—Jetpack最全简析

    前言 Android Jetpack想必大家都耳熟能详了,Android KTX,LiveData,Room等等一系列库都是出自 Jetpack.那么 Jetpack到底是什么?又包含哪些你还没用过的 ...