为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用python和Java运行Docker?

如何使用python和Java运行Docker?

紫衣仙女 2021-04-09 18:15:08
我需要在docker容器中同时使用java和python来运行一些代码。这是我的dockerfile:如果我不添加FROM openjdk:slim,它可以正常工作#get pythonFROM python:3.6-slimRUN pip install --trusted-host pypi.python.org flask#get openjdkFROM openjdk:slimCOPY . /targetdirWORKDIR /targetdir# Make port 81 available to the world outside this containerEXPOSE 81CMD ["python", "test.py"]并且test.py应用程序位于同一目录中:from flask import Flaskimport osapp = Flask(__name__)@app.route("/")def hello():    html = "<h3>Test:{test}</h3>"    test = os.environ['JAVA_HOME']    return html.format(test = test)if __name__ == '__main__':    app.run(debug=True,host='0.0.0.0',port=81)我收到此错误:D:\MyApps\Docker Toolbox\Docker Toolbox\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown.我到底在做什么错?我是Docker的新手,也许我错过了一步。额外细节我的目标我必须运行一个运行Java文件的python程序。我正在使用的python库需要使用的路径JAVA_HOME。我的问题:我不懂Java,所以无法正确运行文件。我的整个代码都是用Python编写的,除了Java之外Python包装器以我需要它运行的方式来运行文件。
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

解决上述问题的一种更简单的解决方案是使用多阶段docker容器,您可以在其中将内容从一个容器复制到另一个容器。在上述情况下,您可以将其openjdk:slim作为基本容器,然后使用python容器中的内容复制到该基本容器中,如下所示:


FROM openjdk:slim

COPY --from=python:3.6 / /


... 


<normal instructions for python container continues>


...


此功能自Docker 17.05起可用,使用多阶段构建可以做更多的事情,例如仅将所需的内容从一个复制到另一个。


查看完整回答
反对 回复 2021-04-20
  • 3 回答
  • 0 关注
  • 261 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信