Я хочу добавить Webots в свой Dockerfile, но столкнулся с проблемой. Мои текущие шаги по установке вручную (из здесь):
$ # launch my Docker container without Webots
$ wget -qO- https://cyberbotics.com/Cyberbotics.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install -y software-properties-common
$ sudo apt-add-repository 'deb https://cyberbotics.com/debian/ binary-amd64/'
$ sudo apt update
$ sudo apt-get install webots
$ # now I have a Docker container with Webots
Я хочу включить этот процесс в сборку контейнера Docker. Я не могу просто использовать те же шаги в Dockerfile
, потому что во время установки webots запрашивает некоторые ответы на стандартный ввод, запрашивающие страну происхождения клавиатуры. Поскольку Docker не слушает стандартный ввод во время сборки, я не могу ответить на эти запросы. Я попытался передать вывод echo
таким образом, но он не работает:
# Install Webots (a robot simulator)
RUN wget -qO- https://cyberbotics.com/Cyberbotics.asc | sudo apt-key add -
RUN apt-get update && sudo apt-get install -y \
software-properties-common \
libxtst6
RUN sudo apt-add-repository 'deb https://cyberbotics.com/debian/ binary-amd64/'
RUN apt-get update && echo 31 1 | sudo apt-get install -y \
webots # the echo fills the "keyboard country of origin" prompts
Как я могу включить Webots в контейнер Docker? Я не хочу просто использовать чужой контейнер (например, cyberbotics/webots-docker), так как мне нужно добавить в контейнер другие вещи, например ROS2.
DEBIAN_FRONTEND=noninteractive
, как описано в Возможно ли отвечать на вопросы диалога при установке под докером? help? (Здесь вам вообще не нуженsudo
; Dockerfile по умолчанию должен запускаться от имени пользователя root.) - person David Maze   schedule 14.02.2021