首页 > 其他分享 >不再讨厌系统环境变量了

不再讨厌系统环境变量了

时间:2023-02-23 17:37:02浏览次数:48  
标签:dubbo JAVA 不再 讨厌 MySQL docker 环境变量 ly

今天之前, 我是痛恨环境变量的, 痛恨到什么地步呢? 就是我在学校的时候, 我们班没几个同学听课, 全班一半的JDK+eclipse环境是我配置的...

起因

我不再讨厌环境变量的原因, 可能是它解决了我通过一般途径无法解决的问题了吧

比如docker环境下:

  1. 如何修改已经打包好的springboot项目中MySQL连接密码
  2. 如何修改MySQL镜像的默认端口配置
  3. docker中dubbo的ip/host如何修改
  4. 如何修改ES的内存占用

等等问题

上面的问题难度都不大, 只需要把里面东西copy出来, 再做为镜像映射一下就好了

但是, 总感觉有些不优雅

说一下我遇到的解决方案

示例

为了方便演示, 假设docker的network_mode一律为host

实际场景中, docker更推荐使用env文件来统一端口

  1. docker 修改MySQL端口为8000

    其实做端口映射就够用了

    # docker-compose.yml
    version: '3'
    
    services:
      ly-mysql:
        image: mysql
        container_name: ly-mysql
        environment:
          MYSQL_TCP_PORT: 8000
          MYSQL_ROOT_PASSWORD: password
        network_mode: host
    

    只需要指定MYSQL_TCP_PORT为8000就行了

    更多环境变量参考MySQL官网

    能力有限我也就不翻译了

  2. springboot项目修改yml配置

    如果不嫌麻烦可以重新构建, 但是如果是nacos, seata这种就不太方便

    JAVA_OPTS 是JVM的参数, 为java所读取

    PS: 不要和JAVA_TOOL_OPTIONS_JAVA_OPTIONS混淆

    version: '3'
    services:
      ly-some-project:
        image: ly-some-project:1.2.1
        container_name: ly-some-project
        environment:
          # 如同命令行中使用java -jar xx.jar -Dserver.port=1234一样
          JAVA_OPTS: "-Dserver.port=1234"
        depends_on:
          - zhgd-sky-oap
        network_mode: "host"
    

    关于springboot项目相关的环境变量建议参考官方文档-外化配置

  3. dubbo/nacos/seata等这些程序

    其实也一样, 会有一些环境变量的读取操作

    例如dubbo的配置, 可以直接设置环境变量来修改监听的ip

    DUBBO_DUBBO_IP_TO_BIND=192.168.2.168
    

    dubbo官方文档-docker环境变量

    dubbo上述文档页面只有docker中特有的, 还有还多其他的, 只是没有地方集中说明

  4. 同理, 我们还可以通过咕噜咕噜搜索关键词

    xxx environment variables来找到其他软件程序的环境变量配置

    elasticsearch

    redis为命令行参数

    postgresql


PS: 环境变量用到的地方很多, 大部分配置文件都是支持的, 不要拘泥于特定文件类型如yml, ini等, 主要还是看他的运行环境是否支持. nginx.conf也是支持的

docker会支持多一些环境变量, 但即便没有, java程序也可以使用JAVA_OPTS来设置, 其他程序也有相关方式

标签:dubbo,JAVA,不再,讨厌,MySQL,docker,环境变量,ly
From: https://www.cnblogs.com/liangyun/p/17148839.html

相关文章

  • export为shell脚本添加指定环境变量的方法
     12345#!/bin/bashexport PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/jdk/bin:/usr/local/mysql/bin或PATH=/usr/local/bin:/usr/bin......
  • K8s的环境变量
    k8s-pod注入环境变量变量值几种定义方式:自定义变量值变量值从Pod属性获取变量值从Secret、ConfigMap获取参考yaml文件---apiVersion:v1kind:Podmetadata:n......
  • macOS永久添加环境变量
    1vim~/.bash_profile修改文件,假如要添加的环境变量为/usr/local/pgsql/bin,则在末尾添加一行:1exportPATH=/usr/local/pgsql/bin:$PATH依次按下esc、:、w、q四个......
  • springboot读取配置信息,环境变量的方法
    前提配置文件一般是值resources目录下的application.properties或application.yml,其中保存着配置信息代码中实现配置注入的方法使用@Value注解@Value("${test.msg}")......
  • java 配置环境变量
    1.在此电脑下右键点击属性->系统信息点开高级系统设置->高级下面点击环境变量->在系统变量下面点击新建按钮2.变量名输入JAVA_HOME,输入值为安装JDK的路径(不包含bin路径)......
  • maven环境变量配置教程
    maven官网1.点击maven官网,下载maven的zip压缩包解压压缩包2、打开高级系统设置界面鼠标右键桌面的“此电脑”图标,点击“属性”,弹出系统窗口,然后点击“高级系统设置......
  • MAC环境变量
     安装MAC一些编程用到等环境,经常需要配置想相关环境的路径,所以必须了解MAC path系统路径文件加载顺序: /etc/profile/etc/paths~/.bash_profile~/.bash_login~/.p......
  • java环境搭建问题之——此环境变量太大。此对话框允许将值设置为最长2047个字符。“
    系列文章目录文章目录​​系列文章目录​​​​前言​​​​一、解决办法​​​​办法二​​前言安装完jdk1.8,之后,要添加环境变量,之前添加都没事,突然就加不了了,情况很急,这......
  • 错误:[ERROR] 不再支持源选项 5。请使用 6 或更高版本。 [ERROR] 不再支持目标选项 1.5
    解决方案pom.xml文件中增加maven编译的java.versionjdk版本设置,以及maven.compiler.source 资源编译jdk版本设置和maven.compiler.target 资源构建jdk版本设置For JA......
  • 修改linux下jdk环境变量
    1、查看jdk版本:2、查看jdk安装路径:echo$JAVA_HOME    3、用vim/etc/profile进入编辑状态,以下配置需要修改:(配置的jdk的路径一定得对) 修改:JAVA_HOME=/usr......