现在一个项目中遇到python调用java的jar包的环境。为了方便发布,编写了这个dockerfile,作为基础镜像。

 #this docker file is used to build runtime environment.
#The project is a python app which contains a java jar lib.
FROM centos
MAINTAINER mzyn22 <mzyn22@163.com> COPY ./requirements.txt /usr/local/src/requirements.txt
# update software resource
RUN yum -y install wget && \
cd /etc/yum.repos.d/ && \
mkdir bak && \
mv *.repo bak && \
wget http://mirrors.aliyun.com/repo/Centos-7.repo && \
wget http://mirrors.aliyun.com/repo/epel-7.repo && \
yum -y install zlib-devel bzip2-devel openssl-devel openssl-static ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel lzma gcc && \
yum -y groupinstall "Development tools" && \
yum -y install java-1.8.0-openjdk.x86_64 && \
cd /usr/local/src/ && \
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz && \
tar xvf Python-3.7.0.tar.xz && \
mv Python-3.7.0 /usr/local/python-3.7 && \
cd /usr/local/python-3.7/ && \
./configure --prefix=/usr/local/sbin/python-3.7 && \
make && make install && \
rm -rf /usr/bin/python && \
ln -sv /usr/local/sbin/python-3.7/bin/python3 /usr/bin/python && \
ln -sv /usr/local/sbin/python-3.7/bin/python3 /usr/bin/python3 && \
ln -sv /usr/local/sbin/python-3.7/bin/python3 /usr/bin/python37 && \
sed -i 1s/python/python2.7/ /usr/bin/yum && \
sed -i 1s/python/python2.7/ /usr/libexec/urlgrabber-ext-down && \
sed -i 1s/python/python2.7/ /usr/bin/yum-config-manager && \ sed -i '$a\JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64' /etc/profile && \
sed -i '$a\PATH=$PATH:$JAVA_HOME/bin' /etc/profile && \
sed -i '$a\CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile && \
sed -i '$a\export JAVA_HOME CLASSPATH PATH' /etc/profile && \
source /etc/profile && \
ln -s /usr/local/sbin/python-3.7/bin/pip3 /usr/bin/pip && \
pip install --upgrade pip RUN pip install -r /usr/local/src/requirements.txt

一个包含python和java环境的dockerfile的更多相关文章

  1. storm安装(2)ZeroMQ、JZMQ、Python、Java环境的安装

    2.ZeroMQ安装 把安装本件zeromq-2.1.7.tar.gz拷贝到home文件路径下, 给文件加入权限 chmod +x /home/zeromq-2.1.7.tar.gz 解压文件 tar ...

  2. python、Java、大数据和Android的薪资如何?

    莫名其妙,从去年年底开始,Python这个东西在中国,突然一下子就火起来了,直至现在,他的热度更是超越了java,成为软件工程师最为关注的话题.Python之所以能火起来,很大一方面是因为大数据.人工 ...

  3. 【机器学习之一】python开发spark环境搭建

    环境 spark-1.6 python3.5 一.python开发spark原理使用python api编写pyspark代码提交运行时,为了不破坏spark原有的运行架构,会将写好的代码首先在pyt ...

  4. python语言开发环境配置

    原作者:龙行天下-super 地址:https://www.cnblogs.com/longxingtianxia/p/10181901.html 要点:IDLE是一个轻量级python语言开发环境, ...

  5. 14行脚本配置Linux下一个Java环境变量

    供Java人们刚开始学习.多半Java它需要花费大量的精力在开发环境的配置,于Linux下一个,构造Java环境变量,很可能加入这一努力. 为此,我做了一个bash脚本来配置自己主动Java环境变量. ...

  6. 部署一个基于python语言的web发布环境

    ---恢复内容开始--- 1) 一门面向对象的语言 2)拥有丰富的库 3)可移植性 4)免费.开源 5)简单易易学 可做软件开发.人工智能.web开发等等 部署流程: Cnetos7.5+Nginx+ ...

  7. 【Python】Java程序员学习Python(二)— 开发环境搭建

    巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...

  8. 构建一个java环境的centos系统镜像并上传到阿里云镜像仓库

    编辑dockerfile 文件 FROM centos MAINTAINER zhaoweifeng ENV LANG en_US.UTF-8 RUN /bin/cp /usr/share/zonei ...

  9. 一个大浪Java罢工(一个)安装JDK和环境变量配置

    一个.基础知识 (一)什么是Java? Java是一种能够撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台( ...

随机推荐

  1. SpringMVC--DispatcherServlet

    DispatcherServlet 是前端控制器设计模式的实现,提供 Spring Web MVC 的集中访问点,而且负责职责的分派,而且与 Spring IoC 容器无缝集成,从而可以获得 Spri ...

  2. 查询Oracle正在执行的sql语句及kill被锁的表

    查询Oracle正在执行的sql语句及执行该语句的用户SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, pa ...

  3. Java并发指南13:Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

    Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 转自https://www.javadoop.com/post/hashmap#toc7 部分内容转自 http: ...

  4. 笔记七(编写第一个UEFI程序)

    搭建好uefi开发环境之后,在MyWorkspace文件夹中建立一个文件夹ExamplePkg; ,然后在ExamplePkg文件夹中创建HelloWorld文件夹,Include文件夹,Exampl ...

  5. Git 基本应用

    微信公众号:Java修炼指南博客园:https://home.cnblogs.com/u/wuyx/CSDN: https://mp.csdn.net/简书:https://www.jianshu.c ...

  6. oracle OPEN FOR [USING] 语句

    目的:        和ref cursor配合使用, 可以将游标变量分配给不同的SQL (而不是在declare中把游标给定死), 增加处理游标的灵活性语法: declare type type_c ...

  7. jQuery的html()、text()和val()的使用和区别

    .html():读取和修改一个元素的HTML内容 .text():读取和修改一个元素的文本内容 .val():读取和修改一个表单元素的value字段值

  8. JS中的prototype、__proto__与constructor(图解)

    作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...

  9. tomcat 8.xxx ssl使用websocket Failed to close the ServletOutputStream connection cleanly

    报错: 2019-09-17 10:30:17.277 default [https-jsse-nio-8110-exec-20] INFO o.a.t.w.s.WsRemoteEndpointImp ...

  10. Spring Aop(十)——编程式的Pointcut

    转发地址:https://www.iteye.com/blog/elim-2396526 编程式的Pointcut 除了可以通过注解和Xml配置定义Pointcut之外,其实我们还可以通过程序来定义P ...