Как передавать входные аргументы, которые будут использоваться потом, при запуске контейнера?

Рейтинг: 0Ответов: 1Опубликовано: 25.01.2023

Есть python скрипт со своими зависимостями, список которых находится в requirements.txt.

введите сюда описание изображения

Сам скрипт при его запуске через консоль принимает один входной параметр.

Я хочу создать на основе этого контейнер.

Итак можно ли сделать так, чтобы при запуске контейнера передавать тот самый параметр, который необходим исполняемому скрипту?

Ответы

▲ 0Принят

Да, можно.

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