Как принять лицензионное соглашение при сборке rti-connectxt-dds-5.3.1 с сборкой docker? - PullRequest
5 голосов
/ 12 мая 2019

Я создаю образ из Dockerfile, для которого требуется установить пакет rti-connext-dds-5.3.1 .(Это одна из зависимостей при сборке ROS2 в Linux ).

Проблема с этим пакетом состоит в том, что он отображает лицензионное соглашение, которое необходимо прокрутить, а затем принять, введя «да».«на приглашение.Я не могу настроить команды Dockerfile для автоматической прокрутки и / или автоматического принятия этого лицензионного соглашения:

license agreement

Нажатие EnterКлавиша или Пробел не прокручивает лицензию вниз, она просто отображает пустые строки.Нажатие любой другой клавиши / клавиш просто выводит ее на консоль.На этом этапе сборка зависла и не может продолжаться.

Вот файл Docker:

FROM ubuntu:bionic

ARG DEBIAN_FRONTEND=noninteractive
# ARG DEBIAN_FRONTEND=teletype
RUN apt-get update && \
    apt-get install -y apt-utils debconf-utils gnupg2 lsb-release && \
    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 && \
    echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list && \
    apt-get update && \
    # echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
    # echo "rti-connext-dds-5.3.1 rti-connext-dds-5.3.1/license string y" | debconf-set-selections && \
    # echo "rti-connext-dds-5.3.1 rti-connext-dds-5.3.1/license string yes" | debconf-set-selections && \
    apt-get install -y rti-connext-dds-5.3.1
    # apt-get install -y -q rti-connext-dds-5.3.1
    # yes "yes" | apt-get install -y -q rti-connext-dds-5.3.1

WORKDIR /home

Как видно из файла Docker, я уже попробовал:

Как автоматически прокрутить и / или автоматически принятьлицензия при установке?

1 Ответ

4 голосов
/ 13 мая 2019

Вы можете использовать переменную env "RTI_NC_LICENSE_ACCEPTED = yes".Ваш докер-файл будет выглядеть примерно так:

FROM ubuntu:bionic

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y apt-utils debconf-utils gnupg2 lsb-release && \
    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 && \
    echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list && \
    apt-get update 
RUN RTI_NC_LICENSE_ACCEPTED=yes apt-get install rti-connext-dds-5.3.1

WORKDIR /home
...