зависимость.
Сразу скажу, что интересует только запуск скрипта, а не полноценное создание образа.
У меня получилось вот такое убожество:
docker run -it --rm --workdir /app --user `id -u`:`id -g` \
--volume `pwd`:/app \
--volume ~/.local/lib/python3.9:/tmp/home/.local/lib/python3.9 \
--volume /tmp:/tmp/home/.local/bin \ # Чтобы пип записал бинарники в ~/.local/bin
--env HOME=/tmp/home \
python:3.9-slim-buster \
python /app/main.py
Ну и зависимость ставится, заменяя последнюю строчку на это:
pip install --user --no-cache-dir 'requests>=2.25.1,<3'
Как можно упростить?
Как можно попросить pip не трогать мой ~/.local/bin?
ужас какой. ты используешь докер в очень гхм... неординарный способ.
На компе нет питона нужной версии, а сам скрипт из разряда хелловорлда по сложности) Т.е. нет причин делать скрипту полноценный контейнер
Станет на три опции короче (из девяти), но добавится сложность по сборке образа с нужной зависимостью. Получится как-то так: ``` docker run -it --rm --workdir /app --user `id -u`:`id -g` \ --volume `pwd`:/app \ --env HOME=/tmp/home \ my-image:my-tag \ python /app/main.py ```
эм... в чем сложность? написать две строчки Dockefile и docker-compose?
Параметры надо передавать разные приложению, композ не помощник. Вот последний кусочек кода - это с докерфайлом, где есть нужная зависимость
docker-compose просто слегка упростит процесс пересборки образа если нужно
Обсуждают сегодня