zoukankan      html  css  js  c++  java
  • Docker 在容器中运行springboot的jar包,挂载外部yml配置文件

    1、创建Dockerfile

    FROM java:8
    #EXPOSE 8900
    ADD springboot.jar app.jar RUN bash
    -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/data/java/config/application-dev.yml"]

    FROM java:8:使用jdk8作为基础镜像
    EXPOSE 8900:暴露容器的8900端口
    ADD springboot.jar app.jar:将复制指定的java.jar为容器中的app.jar,相当于拷贝到容器中取了个别名
    RUN bash -c ‘touch /app.jar’: 创建一个新的容器并在新的容器中运行命令
    ENTRYPOINT[]:相当于在容器中用cmd命令执行jar包

    2.Dockerfile配置文件

    主要是jar包的运行方式,注意看最后一个ENTRYPOINT参数中的 --spring.config.location,这里表示运行的时候动态扫描加载某个目录下的配置文件。我们使用docker buildjar包打好镜像后,继续看第二步

    3.运行docker容器命令,主要是挂载目录

    假设镜像名字和版本为 springboot:2019,使用下面命令创建

    docker run -dit 
    --name springboot
    -p 8900:8900 
    -v /home/springboot/config:/data/java/config 
    springboot:2019

    我们将linux宿主机上的/home/config/config目录挂载到容器中的/data/java/config目录,大家发现没,第一步的Dockerfile文件中的配置的扫描目录就是/home/config/config目录下的application-dev.yml配置文件,这样我们直接可以修改宿主机上的application-dev.yml配置文件,从而就是修改了容器中的application-dev.yml配置文件,所以我们再重新restart启动的时候,可以发现,扫描的内容就是我们修改之后的。

    因为挂载目录是可以将宿主机上的文件和容器中的文件进行交互的,简单来说就是共享同一个文件。

  • 相关阅读:
    为什么需要链路追踪
    Nacos Config 多环境的配置
    Nacos Config 客户端的使用
    Nacos Config 服务端初始化
    使用路由网关的全局过滤功能
    什么是 Spring Cloud Gateway
    c# 第五节 第一个控制台程序、第一个桌面、快捷键、注释
    c# 第四节 Net Framework编写应用程序的过程
    c# 第三节 vs的安装
    c# 第二节 c#的常用IDE环境
  • 原文地址:https://www.cnblogs.com/weibanggang/p/14759040.html
Copyright © 2011-2022 走看看