Как передать динамические значения в Docker-контейнер? - PullRequest
0 голосов
/ 12 июня 2018

Я выполняю сценарий perl в Dockerfile и хотел бы передать динамические аргументы командной строки в сценарий perl при запуске образа докера (контейнера). Пример: CMD perl test.pl <args>.Я новичок в Docker, кстати.

Есть ли возможность передавать динамические значения в Docker-контейнер lilke docker run <image name> <args>?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Вы можете использовать скрипт Entrypoint:

$ docker run [ОПЦИИ] ИЗОБРАЖЕНИЕ [: TAG | @DIGEST] [КОМАНДА] [ARG ...]

и

Если на изображении также указана ENTRYPOINT, CMD или COMMAND добавляются в качестве аргументов к ENTRYPOINT.

Так что в зависимости от вашего Dockerfile выесть что-то вроде этого (пример приложения Python):

FROM jfloff/alpine-python:3.6

# add entrypoint script
USER root
COPY start.sh /
RUN chmod a+x /start.sh

ENTRYPOINT ["/start.sh"]
CMD ["arg1"]

и start.sh:

#!/bin/bash

echo $1

# don't exit
/usr/bin/tail -f /dev/null

Теперь вы можете сделать что-то вроде:

15:19 $ docker run f49b567f05f1 Hello
Hello
15:21 $ docker run f49b567f05f1
arg1

Сейчасесли ваш скрипт настроен на эти аргументы, вы сможете запускать его как хотите.Ссылка из Docker прикреплена, ищите «Переопределение значений по умолчанию для файла Dockerfile» в this , а затем посмотрите в разделе CMD .

Или проверьте это сообщение.

0 голосов
/ 12 июня 2018

Я не уверен, что вы можете сделать это с CMD, но если вы просто хотите выполнить скрипт perl с некоторыми переданными аргументами, используйте ENTRYPOINT.

ENTRYPOINT ["perl", "test.pl"]
CMD ["default-arg"]

Запустите контейнер с:

docker -run <image-name> overriding-arg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...