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

文件目录结构如下:

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

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

         (3)lib放的是jar包

         (4)logs 日志文件夹

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

Dockerfile的文件脚本如下:

FROM openjdk:-jdk-alpine
COPY ./config /usr/web/live/config
COPY ./bin /usr/web/live/bin
COPY ./logs /usr/web/live/logs
COPY ./lib /usr/web/live/lib EXPOSE ENTRYPOINT ["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 :  caicai/live:1.0

然后IE看下效果

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

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

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

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

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

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

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

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

docker 部署spring.boot项目【一】(引用外部配置文件)的更多相关文章

  1. 使用 Docker 部署 Spring Boot 项目,带劲!!

    上一篇:年轻人的第一个 Docker 应用 Docker 一次构建.处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了,不懂的点击这里阅读 Docker 基础教程 ...

  2. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

  3. Windows Docker 部署 Spring Boot 项目

    目录 Docker Configuration Config IDEA Plugin Create Spring Boot Project Containerize It Use Dockerfile ...

  4. 使用 Docker 部署 Spring Boot 项目

    Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面 ...

  5. IDEA连接远程服务器Docker部署Spring Boot项目

    开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:http ...

  6. 【docker】docker部署spring boot项目在服务器上

    IDE:idea 工具:docker spring boot:2.0.1 ======================================== 简单记录一下流程,以供参考: 第一步:首先得 ...

  7. docker部署spring boot项目在服务器上

    IDE:idea 工具:docker spring boot:2.0.1 ======================================== 简单记录一下流程,以供参考: 第一步:首先得 ...

  8. Docker 部署Spring Boot 项目并连接mysql、redis容器(记录过程)

    Spring Boot 项目配置 将写好的Spring Boot 项目通过maven 进行package打包获得可执行Jar 再src/main/docker(放哪都行)下编写创建Dockerfile ...

  9. 如何用Docker部署Spring Boot项目

    1.idea中安装docker插件: 2.新建DockerFile,内容如下. # 基础镜像使用java FROM java:8 # 作者 MAINTAINER vic <test@163.co ...

随机推荐

  1. HTTP要点概述:六,HTTP报文

    一,HTTP报文: 用于HTTP交互的信息称为HTTP报文.请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器)的叫做响应报文.HTTP报文本身是由多行(用CR+LF换行)数据构成的字符串文本 ...

  2. Robot Framework快捷键图标制作 去掉cmd命令窗口

    安装好Robot Framework之后,通过 C:\Python27\Scripts\ride.py 启动时会带上一个命令行窗口: 怎样让启动的界面后面不带这个命令行窗口,且图片以机器人显示? 方法 ...

  3. 使用Zabbix监控ZooKeeper服务的健康状态

    一 应用场景描述 在目前公司的业务中,没有太多使用ZooKeeper作为协同服务的场景.但是我们将使用Codis作为Redis的集群部署方案,Codis依赖ZooKeeper来存储配置信息.所以做好Z ...

  4. Swift-AES之加密解密

    什么是AES 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代 ...

  5. android中设置控件获得焦点

    android中,要使控件获得焦点,需要先setFocus,再requestFocus. 以Button为例:                btn.setFocusable(true);       ...

  6. 【BZOJ 3732】 Network

    [题目链接] 点击打开链接 [算法] 求出这个图的最小生成树,对于每次询问,用倍增法求出最近公共祖先,查询最小生成树上两点路径上的最大值 算法的正确性?            假设x和y在最小生成树中 ...

  7. dubbo和SpringCould

    作为常用的微服务框架,这两者经常会被对比,但实际上两者有不少差异. dubbo好比组装电脑,很多东西可以自己选配,自由度高但对于小白难入门,很可能因为某个组件没选好,导致完全用不起来. SpringC ...

  8. 准确率,精确率,召回率,F-measure 之间的关系

    总结:(图上 R的计算的分母应该是 :40+10 )(笔误) 模型条件放宽,负类被误判为正类的可能性就变大(即FP变大)精确率和准确率会受影响(变小) 模型条件变严格,正类有可能被误判为负类(即FN变 ...

  9. MySQL索引学习记录

    参考资料: http://blog.csdn.net/v_july_v/article/details/6530142http://blog.codinglabs.org/articles/theor ...

  10. [App Store Connect帮助]四、添加 App 图标、App 预览和屏幕快照(1)App Store 图标、App 预览和屏幕快照概述

    您可以为您的 App Store 产品页提供有关您 App 的 App Store 图标.三个 App 预览和十张屏幕快照. App Store 图标 您必须提供一个 App Store 图标,用于在 ...