上一篇随笔,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. 解决 django 中 mysql gone away 的问题

    最近在项目中,我使用 Django Command 模块写了一个脚本,处理从 MQ 发来的消息,并入库.在测试过程中,程序运行良好,但是在程序上线并运行一段时间后,出现了以下错误: Operation ...

  2. CI CD系统整合

    转载_CI 系统搭建:Git.Gerrit与Jenkins 2014-08-11 20:55 15678人阅读 评论(1) 收藏 举报 分类: 软件集成和项目管理(3) 目录(?)[+] 去年写的这五 ...

  3. 基于JWT机制的单点登录

    使用JWT实现单点登录时,需要注意token时效性.token是保存在客户端的令牌数据,如果永久有效,则有被劫持的可能.token在设计的时候,可以考虑一次性有效或一段时间内有效.如果设置有效时长,则 ...

  4. [App Store Connect帮助]五、管理构建版本(1)上传构建版本概述

    在您添加 App 至您的帐户之后,您可以使用 Xcode 或 Application Loader 来上传构建版本.稍后,您可以随着您 App 的更改上传更多构建版本.分发构建版本以供测试,或提交您的 ...

  5. (数论)51NOD 1079 中国剩余定理

    一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23.   Input 第1行:1个数 ...

  6. 专题十一:实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  7. Java编程思想读书笔记_第7章

    final关键字类似const: import java.util.*; public class FinalData { static Random rand = new Random(47); f ...

  8. JavaScript中逻辑运算符的使用

    逻辑运算符用于对一个或多个布尔值进行逻辑运算.在JavaScript中有3个逻辑运算符,如下表所示. 运算符 描述 示例 && 逻辑与 a && b  //当a和b都为 ...

  9. 开发一款APP需要多少钱

    移动互联网近几年发展尤为迅速,越来越多的企业也开始将目光聚集到了移动互联网,这意味着移动互联网时代到来,而移动APP应用是竞争的一个因素.在移动互联网时代,移动APP开发已经不再是什么新鲜事了,许多的 ...

  10. Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

    一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...