【发布时间】:2015-12-20 13:16:11
【问题描述】:
我是 Docker 的新手,我需要创建容器以将 Docker 容器作为 Apache Mesos 任务运行。
问题是我找不到任何相关的例子。它们都以 Web 开发为中心,而我的情况并非如此。
我有一个具有大量依赖项的纯 Python 项目(例如 Berkeley Caffe 或 OpenCV)。 如何编写 Docker 文件以正确注册所有依赖项(以及如何找到它们?)
【问题讨论】:
我是 Docker 的新手,我需要创建容器以将 Docker 容器作为 Apache Mesos 任务运行。
问题是我找不到任何相关的例子。它们都以 Web 开发为中心,而我的情况并非如此。
我有一个具有大量依赖项的纯 Python 项目(例如 Berkeley Caffe 或 OpenCV)。 如何编写 Docker 文件以正确注册所有依赖项(以及如何找到它们?)
【问题讨论】:
docker hub 注册表包含许多官方语言镜像,您可以将它们用作基础镜像。
这些说明告诉您如何构建您的 python 项目,包括依赖项的导入。
├── Dockerfile <-- Docker build file
├── requirements.txt <-- List of pip dependencies
└── your-daemon-or-script.py <-- Python script to run
图像同时支持 Python 2 和 3,您可以在 Dockerfile 中指定:
FROM python:3-onbuild
CMD [ "python", "./your-daemon-or-script.py" ]
基础镜像使用特殊的ONBUILD instructions为你所有的辛勤工作。
【讨论】:
Docker 官方网站有一些 step-by-step 和 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"]
当然,以上内容未经测试,但您可能明白了。
【讨论】: