簡體   English   中英

什么是運行 python 腳本的基本 Dockerfile/docker-compose.yml(使用特定版本的 python/包)

[英]what is a bare-bones Dockerfile/docker-compose.yml to run python scripts (with specific versions of python/packages)

我的筆記本電腦(Macbook)預裝了舊版本的 Python(2.7)。

我有幾個不同的 python 腳本task1.pytask2.py需要 Python 3.7 和pip install some_handy_python_package

一些在線消息來源稱,在 Macbook 上更新 Python 的系統范圍版本可能會破壞一些(未指定的)遺留應用程序。

似乎是 Docker 的完美用例,使用自定義 Python 設置運行一些本地腳本,但我沒有找到這個簡單用例的任何在線示例:

  • 筆記本電腦主機文件夾mystuff有兩個腳本task1.pytask2.py (加上 Dockerfile 和 docker-compose.yml 文件)
  • 使用 python 3.7 和任何需要的包創建 docker 映像和任何所需的包,例如pip install some_handy_python_package
  • 可以從 docker 容器內運行任何本地托管的 python 腳本
    • perhaps something like docker run -it --rm some-container-name THEN at a bash prompt 'inside' docker run the script(s) via python task1.py
    • 或者類似docker-compose run --rm console python task1.py

我假設 Dockerfile 是這樣開始的:

FROM python:3.7
RUN pip install some_handy_python_package

but I'm not sure what to add to either the Dockerfile or a docker-compose.yml file so I can either a) run in Docker a bash prompt that lets me run python task1.py , or b) lets me define a 'console'可以從命令行調用python task1.py的服務

如果它對其他人有幫助,這里有一個基本示例,如何在 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

docker build -t rp.

在本地文件夾中,創建一些 python 腳本,例如:task1.py

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

在本地文件夾中,通過創建app共享點運行容器中的腳本:

docker run --rm -v YOUR_PATH_TO_FOLDER:/app rp python /app/task1.py

具體來說:

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

有時在開發代碼時在容器中運行 python 解釋器很方便:

docker run -it --rm rp1

>>> 2 + 2
4
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM