美文网首页
解决docker容器不能自动加载环境变量问题

解决docker容器不能自动加载环境变量问题

作者: 江东_61b3 | 来源:发表于2019-04-19 19:57 被阅读0次
      以前有个应用通过java容器调用另一个python容器的python应用,最开始直接使用docker run来执行,结果根本调不起来。然后就通过flask向外公布rest接口,再由flask去调用python命令。这样也很方便,但是每次python接口修改后又要去修改flask,又要修改java代码,搞得太麻烦。
       今天就打算把java和python放一起,直接通过java runtime执行python命令。
    

    先本来打算在java8镜像上安装python3.7,结果发现安装过程很复杂,就决定在python3.7基础上安装jdk,只需要设置环境变量就可以。结果恰恰认为很简单的设置环境变量搞了我一下午,最开始在/etc/profile中设置

    export JAVA_HOME=/data/jdk1.8.0_171
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH  
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    

    结果启动java就识别不到,那我dockerfile中在/root/.bashrc中添加source /etc/profile
    ···
    RUN cat "source /etc/profile">>/root/.bashrc
    ···
    结果发现还是不行。
    最后翻书发现需要在dockerfile中设置环境变量。

    FROM python:3.7.3-stretch
    
    MAINTAINER zedong.jiang zedong.jiang@sysssc.com
    
    VOLUME /tmp
    
    RUN pip3 install python-docx
    RUN pip3 install bs4
    
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    ADD ./jdk1.8.0_171 /data/jdk1.8.0_171
    
    ENV JAVA_HOME /data/jdk1.8.0_171
    ENV CLASSPATH .:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
    ENV PATH $JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    
    ADD ./inspection-admin.jar /app.jar
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-jar","/app.jar"]
    

    相关文章

      网友评论

          本文标题:解决docker容器不能自动加载环境变量问题

          本文链接:https://www.haomeiwen.com/subject/crscgqtx.html