当前位置: 首页 > news >正文

docker环境下java参数传递与获取

文章目录

  • docker环境下java参数传递与获取
    • 一,java命令行赋值
    • 二,docker run赋值
    • 三,docker-compose赋值

docker环境下java参数传递与获取

// docker-compose.yml -> environment -> USER
String userEnv = System.getenv("USER");// java -jar xxx.jar --user=jackson
String userArg = Stream.of(args).filter(arg -> arg.contains("--user")).map(arg -> StringUtils.substringAfter(arg, "=")).collect(Collectors.joining());// java -jar -Duser=jackson xxx.jar
String userProp = System.getProperty("user", "");// 按优先级获取
String userName = StringUtils.defaultIfBlank(userEnv, StringUtils.defaultIfBlank(userArg, userProp));

一,java命令行赋值

#args
java -jar docker-java-params-0.0.1.jar --user=jackson#系统属性
java -jar -Duser=jackson docker-java-params-0.0.1.jar

二,docker run赋值

#环境变量、args
docker run -e USER='user001' registry.cn-shanghai.aliyuncs.com/00fly/docker-java-params:0.0.1 --user='jackson'

三,docker-compose赋值

优先环境变量方式,同时也支持args、系统属性

新建docker-compose.yml

services:docker-java-params:image: registry.cn-shanghai.aliyuncs.com/00fly/docker-java-params:0.0.1container_name: docker-java-paramscommand: --user="user by args"entrypoint: java -server -Djava.security.egd=file:/dev/./urandom -Xshareclasses -Xquickstart -Duser="user by prop" -jar /app.jardeploy:resources:limits:cpus: '1.0'memory: 32Mreservations:cpus: '0.05'memory: 32Mrestart: on-failureenvironment:- USER=user by envlogging:driver: json-fileoptions:max-size: 5mmax-file: '1'

同级目录下执行命令

docker-compose up -d && docker logs -f docker-java-params
[+] Running 1/1✔ Container docker-java-params  Started   
[main] INFO com.fly.simple.MainRun - userEnv: user by env
[main] INFO com.fly.simple.MainRun - userArg: user by args
[main] INFO com.fly.simple.MainRun - userProp: user by prop
[main] INFO com.fly.simple.MainRun - userName: user by env

并且支持占位符

services:docker-java-params:image: registry.cn-shanghai.aliyuncs.com/00fly/docker-java-params:0.0.1container_name: docker-java-paramscommand: '--user="${USER2}"'entrypoint: 'java -server -Djava.security.egd=file:/dev/./urandom -Xshareclasses -Xquickstart -Duser=${USER3} -jar /app.jar'deploy:resources:limits:cpus: '1.0'memory: 32Mreservations:cpus: '0.05'memory: 32Mrestart: on-failureenvironment:- USER=${USER1}logging:driver: json-fileoptions:max-size: 5mmax-file: '1'

占位符传递参数

docker-compose down && USER1='user001' USER2='user002' USER3='user003' docker-compose up -d && docker logs -f docker-java-params 

感兴趣的话,你也来试试吧!

有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

http://www.lqws.cn/news/527203.html

相关文章:

  • FANUC机器人教程:用户坐标系标定及其使用方法
  • 学习永无止境
  • 程序的更新总结
  • 简易服务器(TCP)
  • 川翔云电脑全新上线:三维行业高效云端算力新选择
  • Kotlin环境搭建与基础语法入门
  • 鸿蒙边缘智能计算架构实战:多线程图像采集与高可靠缓冲设计
  • MIT 6.S081—环境配置和初步学习day01(VMware和Ubuntu安装)
  • Go 语言中的接口
  • 黑马ReactDay02
  • 《告别一换就崩:前端游戏物理引擎适配层设计哲学》
  • Vue样式绑定与条件渲染详
  • C++新纪元:深入C++11/14/17/20核心特性与名企面试精粹(完整版)--8000字硬核解析 | 腾讯/阿里/字节真题实战
  • 数据分享:交通数据-地铁乘坐站记录数据
  • 随记:WebMvcConfigurationSupport 和WebMvcConfigurer 的区别
  • 第4篇:响应处理——返回数据给客户端(Gin文件下载,JSON,XML等返回)
  • Vue-14-前端框架Vue之应用基础嵌套路由和路由传参
  • 51c~嵌入式~PLC~三菱~合集1
  • spring-ai 1.0.0 (1)模型调用能力
  • 高中成绩可视化平台开发笔记
  • 六个安全Agent设计模式:有效防止Prompt注入攻击
  • 城市综合管廊监测,智能化安全监测,多源感知,三维可视化监控
  • c++面向对象编程
  • 微积分 - 无穷小量
  • 数据分享:环境科学与公共健康行业-空气质量数据集
  • 汽车一键启动升级手机控车
  • SQL(6)
  • css 颜色与字体
  • Adam优化器
  • Nuitka 打包Python程序