假如我们再springboot的工程中有配置文件

方式1:  

application.properties里面存在环境变量:

#配置数据库链接
spring.datasource.url = jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}?useUnicode=true&characterEncoding=utf8 #DB_HOST,DB_PORT,DB_NAME都是环境变量
#配置数据库用户名
spring.datasource.username = ${DB_USER}  #DB_USER就是环境变量
#配置数据库密码
spring.datasource.password = ${DB_PASSWORD}#DB_PASSWORD就是环境变量

然后在docker-compose.yml文件中打包镜像

version: '3'
services:
web:
restart: always
depends_on:
- db
image: springboot-app-image   #镜像,如果本地docker仓库没有将会从远端docker仓库下载该镜像
build: .
ports:
- 8080:8080
environment:
- DB_HOST=192.168.0.11    #application.properties的环境变量
- DB_PORT=3306         #application.properties的环境变量
- DB_USER=root         #application.properties的环境变量
- DB_PASSWORD=123456     #application.properties的环境变量   
- DB_NAME=db
networks:
- credit-facility-net

方式二:

当在docker-compose.yml文件没有指定环境变量的配置时,则使用默认的环境变量

spring.datasource.username=${USER_NAME:tao} #docker-compose没有指定时则使用tao这个用户名

敲入以下命令即可运行

docker-compose up -d

当springboot本身就有多个配置文件时,我们需要在Dockerfile或者docker-compose.yml指定配置文件

在Dockerfile指定配置文件

FROM java:8

MAINTAINER *********@gmail.com

ADD your_jar_name.jar app.jar  # 把jar包打入镜像中,并改名为app.jar

EXPOSE 8090 # 镜像启动成为容器后,对外暴露的端口

# Image创建容器时的初始化内存,最大内存,及启动时使用的profile. -c为清除以前启动的数据
ENTRYPOINT ["java","-Xms1024m","-Xmx1024m","-jar","/app.jar","--spring.profiles.active=mysql","-c"] #这里指定了appication-mysql.properties配置文件

在运行docker镜像时指定配置文件,敲入命令

docker run -d \
-p 8001:8001 \
-e "SPRING_PROFILES_ACTIVE=mysql" \
--name auth \
-v /tmp/cloud-ac-service/auth/:/var/log/cloud-ac-service/auth \
auth:latest

通过docker-compose.yml指定配置文件

方式三:通过java -jar app.jar --spring.config.location=application.yml配置文件路径,在启动工程时指定配置文件

docker-compose如何动态配置springboot项目的application.yml的配置的更多相关文章

  1. IDEA微服务项目的application.yml没有绿色叶子的解决办法

    1.今天在写微服务项目的时候成功入坑,那么问题是啥呢?接下来和我一起走入bug的世界吧,让我们看看究竟是怎么回事. *问题描述 1.application.yml是灰色的小格子 2.实在难看 *需要解 ...

  2. spring-boot项目的docker集成化部署(一)

    目录 spring-boot项目的docker集成化部署 前言 基本思路与方案 基本步骤 准备源码 服务器和基础环境 结语 1. 本文总结: 2. 后期优化: spring-boot项目的docker ...

  3. SpringBoot项目的parent依赖和配置文件*.properties、*.yml详解

    1.idea创建SpringBoot项目 idea创建SpringBoot项目应该对很多人来说已经是菜到不能到菜的操作了,但是对于初学者小白来说,还是要讲解一下的.打开idea,然后选择Spring ...

  4. 关于springboot项目的jar和war两种打包方式部署的区别

    关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...

  5. springboot项目的maven的pom.xml文件第一行报错 Unknown Error

    springboot项目的maven的pom.xml文件第一行报错 Unknown Error https://blog.csdn.net/mini_jike/article/details/9239 ...

  6. SpringBoot(十):读取application.yml下配置参数信息,java -jar启动时项目修改参数

    读取application.yml下配置参数信息 在application.yml文件内容 my: remote-address: 192.168.1.1 yarn: weburl: http://1 ...

  7. SpringBoot中application.yml基本配置详情

    把原有的application.properties删掉.然后 maven -X clean install,或者通过Maven Project双击clean和install(1)端口服务配置 #端口 ...

  8. SpringBoot(二) SpringBoot核心配置文件application.yml/properties

    我们都知道在Spring中有着application.xml文件对Spring进行相关配置,通过web.xml中的contextConfigLocation指定application.xml文件所在位 ...

  9. springboot:读取application.yml文件

    现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形. 一.概述 开发过程中经常遇到要读取application.yml文件中的 ...

随机推荐

  1. concurrentHashMap的put方法详解

    本文主要介绍ConcurrentHashMap的put操作如果有错误的地方欢迎大家指出. 1.ConcurrentHashMap的put操作 ConcurrentHashMap的put操作主要有3种方 ...

  2. vue+element+oss实现前端分片上传和断点续传

    纯前端实现: 切片上传 断点续传 .断点续传需要在切上上传的基础上实现 前端之前上传OSS,无需后端提供接口.先上完整代码,直接复制,将new OSS里的参数修改成自己公司OSS相关信息后可用,如遇问 ...

  3. java连接sql server--关于登录验证及对数据库增删改查应用

    一:步骤## 1.sql server建立数据库和相关表 2.建立数据源  (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源  (2).打开数据源配置后点击添加,选择sql server ...

  4. PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642 题目描述: A number that will ...

  5. CrashLoopBackOff的解决办法之一

    问题来源 # kubectl get pods -n assembly NAME READY STATUS RESTARTS AGE alertmanager-858b7749c5-6jsfh 0/1 ...

  6. CSS 常用样式 – 背景属性

    一.背景颜色 background-color 属性名:background-color 作用:在盒子区域添加背景颜色的修饰 加载区域:在 border 及以内加载背景颜色 属性值:颜色名.颜色值 & ...

  7. Dynamics CRM安装教程四:DNS配置

    在为MS CRM 配置Claims-based认证之前,你需要在域控服务器的DNS中添加一些记录,来解析CRM的各个断点,添加內容如下(本次环境全部安装在一台机子中): AD FS 服务器(例: ad ...

  8. element UI el-autocomplete 带输入建议的输入框

    项目需求:需要用户在输入框中输入公司 全名    但是为了避免用户输入不全   需要做一个带输入建议的输入框 参考:https://www.jianshu.com/p/de922caf337c

  9. LinearDiscriminantAnalysis参数、属性和方法

    [LDA]线性判别分析 参数: solver:一个字符串,指定了求解最优化问题的算法,可以为如下的值. 'svd':奇异值分解.对于有大规模特征的数据,推荐用这种算法. 'lsqr':最小平方差,可以 ...

  10. 记一次 .NET医疗布草API程序 内存暴涨分析

    一:背景 1. 讲故事 我在年前写过一篇关于CPU爆高的分析文章 再记一次 应用服务器 CPU 暴高事故分析 ,当时是给同济做项目升级,看过那篇文章的朋友应该知道,最后的结论是运维人员错误的将 IIS ...