美文网首页
解决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