当前位置: 首页 > 知识库问答 >
问题:

什么是基本的dockerfile/docker-compose.yml来运行python脚本(使用特定版本的python/packages)

余弘新
2023-03-14
  • Laptop hosts文件夹mystuff有两个脚本task1.pytask2.py(外加一个Dockerfile和docker-compose.yml文件)
  • 使用python 3.7和任何所需的包创建docker映像,例如PIP install some_handy_python_package
  • 可以从docker容器中运行任何本地托管的python脚本
    • 可能类似于docker run-it--rm some-container-name,然后在bash提示符'inside'docker通过Python task1.py
    • 运行脚本
    • 或者类似于docker-compose run--RM console python task1.py

    我假设Dockerfile是这样开始的:

    FROM python:3.7
    RUN pip install some_handy_python_package
    

    但是我不确定应该向Dockerfile或docker-compose.yml文件添加什么,以便在Docker中运行一个bash提示符,它允许我运行Python Task1.py,或者允许我定义一个“控制台”服务,它可以从命令行调用Python Task1.py

共有1个答案

牟嘉
2023-03-14

如果它对其他人有帮助,这里有一个基本的示例如何在Dockerized python环境中运行一些本地文件夹python脚本。(更好的示例是在DockerFile中设置卷共享。)

cd sc2
pwd      # /Users/thisisme/sc2`  -- you use this path later, when run docker, to set a volume share

创建Dockerfile

# Dockerfile
FROM python:3.7
RUN pip install some_package

构建容器,在本例中名为rp:

# task1.py
from some_package import SomePackage
# do some stuff

docker run--rm-v/users/thisisme/sc2://app rp python/app/task1.py

有时在开发代码时在容器中运行python解释器是很方便的:

docker run-it--rm rp1

>>> 2 + 2
4
>>>
 类似资料:
  • 问题内容: 我已经成功运行了几个Python脚本,并使用subprocess模块​​从基本脚本中调用了它们: 但是,每个脚本都执行一些模拟(来自C ++应用程序的.exe文件),这些模拟会生成一些输出到外壳程序。所有这些输出都从启动这些脚本的位置写入基本shell。我想为每个脚本生成一个新的shell。我试图在调用subprocess.call时使用该属性生成新的shell (也尝试过popen)

  • 问题内容: 我有3个python版本,我想使用第二个版本来easy_install Orange。我怎样才能做到这一点? 不必要的信息: 在/ usr / bin / python中的2.1 2.6在/Library/Frameworks/Python.framework/Versions/2.6/bin/python中 /Library/Frameworks/Python.framework/V

  • 问题内容: 如何检查正在解释脚本的版本的Python Interpreter? 问题答案: 模块的字符串中提供了此信息: 可读性: 进行进一步处理: 为了确保脚本以Python解释器的最低版本要求运行,请将其添加到你的代码中: 这将比较主要版本和次要版本信息。微(=添加0,1等等),甚至的元组只要你喜欢。但是请注意,最好总是“躲避”检查某个功能是否存在,如果没有,请采取变通方法(或纾困)。有时,某

  • 问题内容: 启动Python解释器实例时显示的行是什么意思? 所以我知道我有Python 2.7,其余的呢? 和部分让我特别困惑。 问题答案: 您看到的那一行表明python解释器的构建方式。分解:

  • 问题内容: 当我这样做时,我有一台Mac: 我有: 但是当我必须: 2.7.6在哪里?有什么建议我该怎么办? 更新: 在PyCharm编辑器中,默认设置解释器显示: 问题答案: 您的macOS上可能有多个Python版本。 您可以检查通过,或命令,如: 或输入在 终端 和命中为自动完成,这相当于几次: 默认情况下,/命令指向环境变量中第一个二进制文件,具体取决于实际安装的文件。因此,在使用Home

  • 问题内容: 我有多个版本的Python。我需要为我的项目创建一个virtualenv,并确保它使用的是Python 2.7。 我已经试过的组合来完成此本指南为Windows和此SO岗位上具有特定类型的Python。 不幸的是,它无法正常工作,这可能是因为后者是由使用Linux的人编写的。 这是我所做的: operable program or batch file. 无法将“ virtualenv