以前有個(gè)應(yīng)用通過java容器調(diào)用另一個(gè)python容器的python應(yīng)用粉寞,最開始直接使用docker run來(lái)執(zhí)行户敬,結(jié)果根本調(diào)不起來(lái)际长。然后就通過flask向外公布rest接口,再由flask去調(diào)用python命令馍迄。這樣也很方便福也,但是每次python接口修改后又要去修改flask局骤,又要修改java代碼,搞得太麻煩暴凑。
今天就打算把java和python放一起峦甩,直接通過java runtime執(zhí)行python命令。
先本來(lái)打算在java8鏡像上安裝python3.7现喳,結(jié)果發(fā)現(xiàn)安裝過程很復(fù)雜凯傲,就決定在python3.7基礎(chǔ)上安裝jdk,只需要設(shè)置環(huán)境變量就可以嗦篱。結(jié)果恰恰認(rèn)為很簡(jiǎn)單的設(shè)置環(huán)境變量搞了我一下午冰单,最開始在/etc/profile中設(shè)置
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
結(jié)果啟動(dòng)java就識(shí)別不到,那我dockerfile中在/root/.bashrc中添加source /etc/profile
···
RUN cat "source /etc/profile">>/root/.bashrc
···
結(jié)果發(fā)現(xiàn)還是不行灸促。
最后翻書發(fā)現(xiàn)需要在dockerfile中設(shè)置環(huán)境變量诫欠。
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"]