上篇博客我搭好了spring-boot项目并可以运行,但是如何放在服务器上运行?
方案1:将本地打包好的jar包(运行以后会自动生成)放在服务器上,配置服务脚本:
进入服务文件目录:cd /etc/systemd/system/
创建服务文件:(文件名对应项目名,可自定义):vim springboot.service
[Unit]
Description=springboot
After=syslog.target
[Service]
ExecStart=/usr/local/jdk1.8.0_191/bin/java -jar /usr/local/my-site-master/target/springboot-1.0.2.RELEASE.jar
[Install]
WantedBy=multi-user.target
启动:systemctl start springboot 或者systemctl start springboot.service
停止:systemctl stop springboot或者systemctl stop springboot.service
状态:systemctl status springboot
开机启动:systemctl enable springboot
方案2:使用docker将spring-boot打成镜像运行:
这个需要准备:1.centOS7系统服务器
2.安装好了JDK
3.安装好了Maven
4.安装docker
以上安装十分简单,可以百度一大堆,节省篇幅我就不写如何安装以上环境。
正题:
1.在项目中添加docker支持,在pom.xml文件中新增以下标红部分即是需要添加的内容
4.0.0 com.example spring-boot 0.0.1 jar Spring Boot A very useful project to demonstrate animated gif support in Spring Boot 2 org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE UTF-8 UTF-8 1.8 springboot org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-maven-plugin com.spotify docker-maven-plugin 1.0.0 ${docker.image.prefix}/${project.artifactId} src/main/docker / ${project.build.directory} ${project.build.finalName}.jar 在src/main/docker下创建 Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像,没有docker包自己创建,写入如下内容:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD spring-boot-docker-1.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
/tmp
的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp
作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker
目录下创建一个临时文件并把它链接到容器中的/tmp
目录java.security.egd
的系统属性指向/dev/urandom
作为 ENTRYPOINT
2.将项目拷贝进服务器,目录个人建议放在/usr/local/下
3.进入项目路径下进行打包测试。
#打包
mvn package
#启动
java -jar target/spring-boot-0.0.1.jar
看到这个表示打包成功,服务器上可以看到,jar包已经生成。
4.接下来我们使用 DockerFile 构建镜像。
项目目录下执行:
mvn package docker:build
看到这里就代表已经将镜像打包好了;
使用docker images命令查看构建好的镜像:
运行该镜像:
docker run -p 8080:8080 -t springboot/spring-boot
启动完成之后我们使用docker ps查看正在运行的镜像:
可以看到我们构建的容器正在在运行,访问浏览器:http://自己服务器IP:8080/Hello?name=Spring-Boot,返回
说明使用 Docker 部署 Spring Boot 项目成功!