Как передавать входные аргументы, которые будут использоваться потом, при запуске контейнера?
Есть python скрипт со своими зависимостями, список которых находится в requirements.txt.
Сам скрипт при его запуске через консоль принимает один входной параметр.
Я хочу создать на основе этого контейнер.
Итак можно ли сделать так, чтобы при запуске контейнера передавать тот самый параметр, который необходим исполняемому скрипту?
Ответы (1 шт):
Да, можно.
Если вы хотите передать этот параметр, как аргумент, для это нужно использовать ENTRYPOINT: https://docs.docker.com/engine/reference/builder/#entrypoint.
Например, у нас есть такой скрипт для тестов test.py:
import sys
print(sys.argv)
И Dockerfile:
FROM python
COPY . .
ENTRYPOINT ["python", "test.py"]
Тогда при запуске такого образа docker run --rm <image> hello world в консоль будет выдано: ['test.py', 'hello', 'world'].
Также можно передавать параметры через переменные окружения.
Например, скрипт:
import os
print(os.environ['TEST'])
При запуске его этой командой docker run --rm -e TEST=hello <image> выведет hello, значение которые мы установили параметром -e.
