Передавать аргументы интерактивной оболочке в Docker контейнере - PullRequest
0 голосов
/ 07 мая 2020

Сейчас я пытаюсь создать изображение Docker для jitsi-meet. Я установил jitsi-meet в свою тестовую систему и заметил, что меня запрашивают ввод данных пользователем. Что ж, это абсолютно нормально при установке jitsi вручную.

Однако процесс установки должен запускаться во время сборки образа. Это означает, что я не могу вручную ввести необходимые данные.

Есть ли способ передать значения в качестве переменной среды в Dockerfile и использовать переменную в контейнере, когда мне будет предложено ввести некоторые дополнительная информация?

Так выглядит мой Dockerfile:

FROM debian:latest

WORKDIR /opt/jitsi-meet

RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get install -y ssh sudo ufw apt-utils apt-transport-https wget gnupg2 && \
    wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add - && \
    sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" && \
    apt-get -y update && \
    apt-get -y install jitsi-meet

EXPOSE 80 443
EXPOSE 10000/udp

Заранее спасибо!

1 Ответ

0 голосов
/ 08 мая 2020

Да, вы можете установить переменные ENV в файле docker

с помощью 'ENV', см .: https://docs.docker.com/engine/reference/builder/#environment -replacement

Чтобы использовать его, когда вы получили запрос, что-то зависит от реализации, приглашение при запуске контейнера не рекомендуется, поскольку в большинстве случаев запуск интерактивного контейнера не имеет смысла.

Однако в bash вы можете прочитать перенаправление что-то в stdin с помощью <или отправьте его с вертикальной чертой (|) команде. </p>

Но как решить эту проблему, зависит от того, как это реализовано в исходном коде, где он запрашивает.

Как правило, рекомендуется пропускать подсказку, если установлен env.

...