Задать вопрос

Как правильно использовать Docker для выполнения Python файла?

Здравствуйте! У меня Python скрипт, который использует некоторые зависимости. Мне нужно сделать так, чтобы у меня была возможность при изменении этого скрипта запустить docker-container с уже установленными зависимостями и при этом, чтобы учитывались изменения в файле. Как лучше всего сделать?
  • Вопрос задан
  • 7761 просмотр
Подписаться 10 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Посмотрите здесь: https://hub.docker.com/_/python/
Если в двух словах, то вы можете:
1. Создать свой образ, основанный на выбранной версии пайтона с установленными нужными вашему скрипту зависимостями и запустить контейнер с примонтированным скриптом.
2. Или собрать новый образ просто добавив в него скрипт. Так как зависимости уже были добавлены до этого, то шаг установки зависимостей докер пропустит и новый образ будет готов практически моментально.

Пример образа:
FROM python:3-alpine
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

Пример запуска скрипта:
docker build -t docker-test .
docker run -it --rm --name my-running-script -v ${PWD}:/usr/src/app docker-test python your-daemon-or-script.py
Ответ написан
Комментировать
1. Делаем контейнер на образе нужной версии python.
2. "Заходим" в него.
3. Устанавливаем нужные пакеты через pip.
4. Делаем pip freeze.
5. Копируем вывод во внешний requirements.txt
6. Выходим из контейнера.
7. Прописываем в докер файл копирование файла requirements.txt в контейнер.
8. Прописываем в докер файл команду установки зависимостей через pip из requirements.txt
9. Билдим контейнер по новой.
10. Для запуска контейнера добавляем связь внешней папки с папкой в контейнере через монтирование.
11. Запускаем контейнер.
12. "Заходим" в контейнер.
13. Правим код во внешней папке и запускаем его в контейнере ручками.
Добились, что код рабочий. Теперь можно создать имадж с приложением. Для этого правим докер файл для добавления копирования кода из папки в контейнер и запуска приложения. Билдим и тестируем имадж через создание контейнера. Заливаем имадж в докер репозиторий. На основе имаджа запускаем контейнер на внешнем хосте. "Грустим", что всё закончилось.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽