docker build - brak parametru

0

Używam obrazu, którego komenda e.g. RUN command wymaga wpisania z konsoli danych. Komenda nie przyjmuje parametrów podczas wywoływania. Bez podania tych parametrów docker build się wysypuje. Pytanie: Czy mogę zatem podczas docker build użyć trybu interaktywnego terminala by dostarczyć owych parametrów? Jeśli nie to jak rozwiązać ten problem? Jak dostarczyć danych programowi command?

Dockerfile example:

FROM image
RUN command
#...
2

Jeśli command wymaga user inputu i chcesz to zautomatyzować, to możesz spipe'ować argument, przykładowo, gdy masz skrypt example.sh, w którym jest wczytywane coś z inputu:

read somevar
echo "User input is $somevar"

to zamiast czekać aż user poda input, mógłbyś zrobić:

echo "somevalue" | ./example.sh

Jest jakiś konkretny powód dla którego wymagany jest prompt w command?
W przypadku instalowania jakichś rzeczy jako krok obrazu za pomocą apt'a przykładowo (promptuje o input Y/n) można to rozwiązać przez podanie flagi -y, może w Twoim przypadku też jest taka opcja?

2

Podaj co to za komenda, większość komend ma zaimplementowaną flagę, która pozwala pominąć potwierdzenie, np:

  • apt-get install -y - tutaj -y powoduje pominiecie interakcji
  • terraform apply --auto-approve - jak wyzej
  • svn --non-interactive - wylacza wszystkie interakcje...

Jesli piszesz skrtypt sam to zaimplementuj metode, albo poszukaj bo moze ktos juz to zrobil ;)

Czasem parametry, ktore podaje sie w inpucie mozna przekazac za pomoca flag, albo zmiennych srodowiskowych

1 użytkowników online, w tym zalogowanych: 0, gości: 1