Как написать Dockerfile для собственного проекта на Python?

Я довольно новичок в Docker, и мне нужно создать контейнер для запуска контейнера Docker в качестве задачи Apache Mesos.

Проблема в том, что я не могу найти соответствующие примеры. Все они сосредоточены вокруг веб-разработки, что не в моем случае.

У меня есть чистый проект Python с большим количеством зависимостей (например, Berkeley Caffe или OpenCV). Как написать файл Docker для правильной регистрации всех зависимостей (и как их найти?)

2 ответа

Решение

Реестр Docker Hub содержит несколько образов на официальных языках, которые вы можете использовать в качестве базового образа.

В инструкциях рассказывается, как вы можете построить свой проект на 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 для всей тяжелой работы за вас.

На официальном сайте Docker есть пошаговая и справочная документация.

Тем не менее, для начала: вам стоит подумать о том, что бы вы сделали, если бы вам пришлось установить и запустить свой проект на новой машине. Вы, вероятно, сделали бы что-то вроде этого...

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"]

Выше, конечно, не проверено, но вы, вероятно, поняли идею.

Другие вопросы по тегам