Как написать 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"]
Выше, конечно, не проверено, но вы, вероятно, поняли идею.