如何为自定义 python 项目编写 Dockerfile?

How to write a Dockerfile for a custom python project?

我是 Docker 的新手,我需要将容器创建到 运行 Docker 容器作为 Apache Mesos 任务。

问题是我找不到任何相关的例子。它们都以 Web 开发为中心,但我不是这样。

我有一个纯粹的 Python 项目,其中有大量依赖项(如 Berkeley Caffe 或 OpenCV)。 如何编写 Docker 文件以正确注册所有依赖项(以及如何找到它们?)

官方 Docker 站点有一些 step-by-step and reference 文档。

但是,为了让您开始:考虑一下如果您要在一台新机器上安装并启动您的项目,您会做什么可能会有所帮助。你可能会做这样的事情......

apt-get update
apt-get install -y python python-opencv wget ...
# copy your app into /myapp/
python /myapp/myscript.py

这或多或少一对一地映射到

FROM ubuntu:14.04
MAINTAINER Vast Academician <vast@example.com>
RUN apt-get update && apt-get install -y python python-opencv wget ...
COPY /path/on/host/to/myapp /myapp
CMD ["python", "/myapp/myscript.py"]

当然,以上内容未经测试,但您可能明白了。

docker 集线器注册表包含许多官方语言图像,您可以将其用作基础图像。

这些说明告诉您如何构建您的 python 项目,包括导入依赖项。

├── Dockerfile                <-- Docker build file
├── requirements.txt          <-- List of pip dependencies
└── your-daemon-or-script.py  <-- Python script to run

Image 同时支持 Python 2 和 3,您在 Dockerfile 中指定:

FROM python:3-onbuild
CMD [ "python", "./your-daemon-or-script.py" ]

基本图像使用特殊 ONBUILD instructions 为您完成所有辛勤工作。