上一篇随笔,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. linux 点命令

    cat a date . a Mon Jun :: CST linux .(点命令):读取并且在当前的shell中执行文件中的命令

  2. CPU上电时序详细分析

    首先是RTC电源,这部分电力是永远不关闭的,除非电池(纽扣电池)没电并且没接任何外部电源(比如电池和电源适配器). RTC用以保持机器内部时钟的运转和保证CMOS配置信息在断电的情况下不丢失:其次,在 ...

  3. POJ 2104 HDU 2665 主席树 解决区间第K大

    两道题都是区间第K大询问,数据规模基本相同. 解决这种问题, 可以采用平方划分(块状表)复杂度也可以接受,但是实际表现比主席树差得多. 这里大致讲一下我对主席树的理解. 首先,如果对于某个区间[L,R ...

  4. Flink源码阅读(1.7.2)

    目录 Client提交任务 flink的图结构 StreamGraph OptimizedPlan JobGraph ExecutionGraph flink部署与执行模型 Single Job Jo ...

  5. mldonkey设置!看图(转载)

    转自:http://www.nenew.net/ubuntu-mldonkey-application.html 这里不是争论区,amule和mldonkey各有各好,看个人爱好,没有高下,都是程序员 ...

  6. springboot(一) 热部署

    代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo 1.热部署的定义 所谓的热部署:比如项目的热部署,就是在应用 ...

  7. css为tbody或者li奇数偶数行样式

    <style> table tbody tr:nth-child(odd){ background:#fff; } table tbody tr:nth-child(even){ back ...

  8. 21 调试我们的C#程序

    我们写的C#程序,很多的时候不是能一次就写对的.尤其是在实际的项目中,你经常要做的工作就是不断修改你写的程序,让它正常运行.程序有错误,主要是两种情况.一种是程序报错了,不能正常运行下去.另一种是程序 ...

  9. Spring.Net学习笔记(7)-事务

    一.开发环境 操作系统:Win7 编译器:VS2010 二.涉及程序集 Spring.Core.dll Spring.Data.dll Common.Logging.dll 三.开发过程 1.项目结构 ...

  10. 6.12---bug