关于使用docker里面java环境每次重启问题


1、问题

 

    测试服务器java环境变量老是失效(非常气人,测试同事老是说系统坏了,我感觉在怀疑我的技术)

    

    我以前的配置是打开 /etc/profile 文件,在后面加上环境变量

 

    整体环境是在宿主机上部署了一套docker,使用docker进行java环境变量配置,然后使用jar包文件进行java功能实现

 

    export PATH CLASSPATH JAVA_HOMEVA_HOME=/www/java/jdk8

    CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib

    PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

    export PATH CLASSPATH JAVA_HOME

 

    使用 source /etc/profile 进行重载配置(往常到这一步已经可以了,但是,最近莫名其妙的就开始崩溃,我怀疑是我另一个开发的同事故意的,但是我没有证据,要是我找到证据,没有一个火锅好不了)

 

2、分析

    由于我只使用了 etc/profile 文件

    

    按照官方解释,对于每一个登录的用户,都是可以载入全局变量的

 

    问题就出在这里,我使用exit退出之后,重新进入docker,奇怪的事情来了,它没有启动,这里应该是进入docker不算打开一个shell,所以没有载入,具体需要试一试,但是我这里的问题确实是失效了,所以etc/profile文件对于docker进入可能有一些奇怪的问题(毕竟正式服我也是这样配置的,完全没有问题,这里下一期继续研究,现在先解决测试)

 

3、开始修复(我是反对的,程序狗表示不想进化,我就想躺平,能用不好蛮,证明我还有点作用,这个想法有问题,不要学不要学)

 

    参考1: https://blog.csdn.net/qq_45927266/article/details/120224171

 

    有四个在系统启动或者是进入shell的时候会访问的数据文件:

 

        (1) /etc/profile

 

            此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从 /etc/profile.d 目录的配置文件中收集 shell 的设置。如果你有对 /etc/profile 有修改的话必须得 source 一下你的修改才会生效,此修改对每个用户都生效。

 

        (2) /etc/bash.bahsrc

 

            为每一个运行 bash shell 的用户执行此文件。当 bash shell 被打开时,该文件被读取。如果你想对所有的使用 bash 的用户修改某个配置并在以后打开的 bash 都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个 bash 即可生效。

 

        (3) ~/.bash_profile(显然不是我这个问题)

 

            每个用户都可使用该文件输入专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的~/ .bashrc 文件。此文件类似于 /etc/profile,也是需要需要 source 才会生效,/etc/profile 对所有用户生效,~/.bash_profile 只对当前用户生效。

 

        (4) ~/.bashrc(这里显然也不是)

 

        该文件包含专用于你的 bash shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该文件被读取。(每个用户都有一个 ~/.bashrc 文件,在用户目录下) 此文件类似于 /etc/bashrc,不需要重启就可以生效,重新打开一个 bash 即可生效,/etc/bashrc 对所有用户新打开的 bash 都生效,但 ~/.bashrc 只对当前用户新打开的 bash 生效。

 

 

    我使用的是 /etc/profile 不行,我准备使用(2)试一下,从描述上看,应该是可以。

 

4、解决

    (使用单个命令都会有问题,使用(1)退出之后就不生效,使用(2)能解决问题,但是我这个服务器有自己的想法,他没有解决,我使用时混合式)

 

    还是使用配置 /etc/profile 文件的方法去解决问题,不同点在于为了防止下一次进入的时候环境失效的问题,我使用了/etc/bash.bahsrc 文件,在里面最后加上 source /etc/profile,这样就能解决问题了,我真是太聪明了

 

 

结语:如果不能解决提出问题的人,就解决问题吧!!!!

 

欢迎讨论,共勉

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/280061.html

(0)
上一篇 2022年8月12日 09:38
下一篇 2022年8月12日 09:54

相关推荐

发表回复

登录后才能评论