centos7上部署spring boot

不难,记录备忘:

一、有centos7的机器

  可用Virtualbox安装centos虚拟机:https://www.centos.org/download/

二、机器上安装有docker

  参考文章:https://www.cnblogs.com/yufeng218/p/8370670.html

三、在自己机器上把spring boot项目打包成一个可执行jar包

  我本地用的maven构建,官方支持的一套东西,运行mvn package直接就打包好了,打包步骤略过

四、建Dockerfile  

# 指定一个基础镜像centos
FROM docker.io/centos:latest

WORKDIR /app

#安装应用执行的环境java
RUN yum -y install java
 
#将目录下的文件复制到容器中
COPY . /app
  
#执行jar文件
ENTRYPOINT ["java" ,"-jar","xxx.jar"]

五、准备好的文件有这些:

  • Dockerfile
  • application.properties
  • logback-spring.xml
  • xxx.jar

统一弄到前面准备好的centos上去,可以直接在要目录下建一个app文件夹,把东西放进去

六、构建自己的镜像,xxx是为项目的docker镜像命名,"."表示当前目录(应该是表示Dockerfile在当前目录下?本人还没弄清):

扫描二维码关注公众号,回复: 4736056 查看本文章
docker build -t xxx .

七、打包好后,可以查看一下镜像:

docker images

八、运行镜像,-d表示后台运行,-p表示端口映射(表示外部访问 centos机器IP:80,即可访问到spring boot在docker里运行所监听的8080端口),xxx即第六步定义的docker镜像名:

docker run -d -p 80:8080 xxx

存在的一些问题:

spring boot项目,一般都用logback记录日志。而且开发的时候一般会有一个 logback-spring.xml 文件在 resources 下,表示要记录什么日志,以及记录在硬盘哪个位置。但是开发时候日志的路径,肯定和centos服务器上的docker里的路径不一样啊,所以肯定不能用开发时的 logback-spring.xml 。不过刚刚mvn打包时,把logback-spring.xml 也打包进去了,如果在服务器上不给个专门的logback-spring.xml ,那就用的开发时的了。所以要指定。

在.jar文件所在的位置,可以放置application.properties ,里面就包括 logging.config=./logback-spring.xml ,这样就使用.jar的同级目录下的logback-spring.xml作为logback的配置文件,在里面可以记录

<property name="LOG_PATH" value="./prologs" />
即会在当前目录下记录日志了。
好了,现在执行以下命令可以进入到运行中的docker 容器里去:
docker exec -it <容器ID> bash

bash是固定写法,据说也可以是/bin/bash和/bin/sh,本人没试了。进去后,就可以看到生成了一个日志文件夹了。

还有问题,这些日志记录了也只存在于容器里,容器没了的时候日志也就没了。

猜你喜欢

转载自www.cnblogs.com/lihan829/p/10204884.html
今日推荐