博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker 部署spring.boot项目【一】(引用外部配置文件)
阅读量:4920 次
发布时间:2019-06-11

本文共 1289 字,大约阅读时间需要 4 分钟。

上一篇随笔,nginx是启动运行在容器内,spring.boot的web项目是运行在宿主内,这一篇的目的,是把web项目也制作成镜像,然后在容器里启动。

文件目录结构如下:

主要文件结构说明:(1)bin放的是测试用的sh启动脚本,这篇随笔里暂时没用,主要用于自己测试用的。

         (2)config放的是项目的外部配置文件,application.yml、log4j2.xml 等,众所周知,一般生产环境不会把配置文件打包到jar包里面。

         (3)lib放的是jar包

         (4)logs 日志文件夹

理想的情况是,要挂载目录,这次我就不演示如何挂载目录

Dockerfile的文件脚本如下:

FROM openjdk:8-jdk-alpineCOPY ./config /usr/web/live/config COPY ./bin /usr/web/live/binCOPY ./logs /usr/web/live/logsCOPY ./lib /usr/web/live/libEXPOSE 8080ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom",\"-jar",\"-Dlogging.path=/usr/web/live/logs",\"-Dloader.path=/usr/web/live/lib",\"-Dlogging.config=/usr/web/live/config/log4j2.xml",\"-Dspring.config.location=/usr/web/live/config/application.yml",\"/usr/web/live/lib/app.jar"]

进入dokcerfile文件同一级目录后,制作docker文件。

docker build -t caicai/live:1.0 .

运行

docker run -p 8091:8080  caicai/live:1.0

然后IE看下效果

 

部署步骤大概就是上面这些。

下面我们来验证下容器内部。前面提到的Dockfile脚本里面

COPY ./config /usr/web/live/config .... 是把宿主的指定文件夹整个复制到内容内部指定的文件夹。

我们来验证下,首先,控制台输入:docker ps  #查看当前宿主所有运行的容器信息

然后可以知道刚才启动的容器Id是f4f5957f99d8,那么,接着输入 docker exec -it f4f5 /bin/sh  #进入容器内部

接着,在容器内部输入一些脚本来验证

可以看到整个容器内部的目录,已经包含我们刚才COPY进来的文件,以及运行web项目的日志文件等信息。

 

以上就是整个部署的简单过程,有很多运维缺陷,比如容器关闭之后,产生的日志没办法持久化、查看运维日志不方便等等

转载于:https://www.cnblogs.com/contraII/p/10224522.html

你可能感兴趣的文章
Bash Shell 字符串操作小结(转)
查看>>
封装数据模型
查看>>
javase基础3
查看>>
命令行解析函数
查看>>
iterm2快捷键启动
查看>>
LeetCode Reverse Nodes in k-Group
查看>>
Todo list and 学习心得
查看>>
html笔记1
查看>>
uva10487-最接近的和
查看>>
FPGA--I2C串行通信总线
查看>>
服务器老是出现502 Bad Gateway?
查看>>
博客系统-点赞取消
查看>>
sql 优化(转)
查看>>
Oracle 迁移 序列
查看>>
弹窗组价
查看>>
小程序の填坑指北
查看>>
AutoMutex
查看>>
13 -1 BOM和定时器
查看>>
uuid.go
查看>>
c#中怎么删除一个非空目录
查看>>