#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
открыть меню. (не знаю точно, чего не хватало)