Зависает меню GUI в контейнере docker (родительский образ ubuntu)

#docker #ubuntu #dockerfile #esp8266

#docker #ubuntu #dockerfile #esp8266

Вопрос:

Я пытался запустить контейнер docker, включающий набор инструментов esp8266 и ESP8266_RTOS_SDK. После завершения работы с файлом Dockerfile появляется «Espressif IoT Menu», но мгновенно зависает, и я ничего не могу контролировать. Скриншот меню. Я подумал, что, возможно, мне придется запускать контейнер бесконечно, но это тоже не помогло. Я попробовал эту команду: RUN tail -f /dev/null . Что еще я подумал, так это то, что в контейнере могут отсутствовать некоторые программы для терминала?

Вот мой файл Dockerfile (впервые работаю с docker):

 FROM ubuntu:latest

# -------------------------- TOOLCHAIN --------------------------------------
WORKDIR /
RUN apt-get update amp;amp; apt-get install -y software-properties-common
RUN apt update amp;amp; add-apt-repository universe
RUN apt-get -y install gcc wget git make libncurses-dev flex bison gperf python3 python3-serial python3-pip

RUN mkdir -p downloads esp8266
ADD https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz downloads
RUN cd esp8266;tar -xzf /downloads/xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz

ENV PATH=/esp8266/xtensa-lx106-elf/bin:$PATH

# -------------------------- ESP8266_RTOS_SDK ---------------------------------

RUN cd esp8266;git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
ENV IDF_PATH="/esp8266/ESP8266_RTOS_SDK"
RUN ln -s /usr/bin/python3 /usr/bin/python #otherwise python wont be found
ENV TERM xterm #otherwise "terminal unknown"
RUN python3 -m pip install --user -r $IDF_PATH/requirements.txt
RUN cd esp8266;cp -r $IDF_PATH/examples/get-started/hello_world .
RUN cd /esp8266/hello_world;make menuconfig
  

Я запускаю контейнер с:

sudo docker build -f $(pwd)/dEsp8266 -t espenv .

Руководство, которое я использовал:

Для набора инструментов: https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/linux-setup.html

Для RTOS_SDK: https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/index.html#get-started-get-esp-idf

Комментарии:

1. Эта docker build команда — это то, как вы создаете образ; какую команду вы используете для запуска контейнера? Какой CMD контейнер должен запускаться?

2. Спасибо за ответ. Это уже помогло мне решить мою проблему! Я думал, что со всеми командами в dockerfile, а затем с docker build помощью, я смогу увидеть, как меню появляется идеально. Теперь я sudo docker run -d --name containerName imageName tail -f /dev/null создал контейнер с именем containerName , а затем sudo docker exec -it containerName bash . После этого я нахожусь в оболочке и могу make открыть меню. (не знаю точно, чего не хватало)