Dockerfile
1 FROM ubuntu:18.04 2 3 ARG DEBIAN_FRONTEND=noninteractive 4 5 # We need libpython2.7 due to GDB tools 6 RUN apt-get update && apt-get install -y \ 7 apt-utils \ 8 bison \ 9 ca-certificates \ 10 ccache \ 11 check \ 12 curl \ 13 flex \ 14 git \ 15 gperf \ 16 lcov \ 17 libncurses-dev \ 18 libusb-1.0-0-dev \ 19 make \ 20 ninja-build \ 21 libpython2.7 \ 22 python3 \ 23 python3-pip \ 24 unzip \ 25 wget \ 26 xz-utils \ 27 zip \ 28 && apt-get autoremove -y \ 29 && rm -rf /var/lib/apt/lists/* \ 30 && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 31 32 RUN python -m pip install --upgrade pip virtualenv 33 34 # To build the image for a branch or a tag of IDF, pass --build-arg IDF_CLONE_BRANCH_OR_TAG=name. 35 # To build the image with a specific commit ID of IDF, pass --build-arg IDF_CHECKOUT_REF=commit-id. 36 # It is possibe to combine both, e.g.: 37 # IDF_CLONE_BRANCH_OR_TAG=release/vX.Y 38 # IDF_CHECKOUT_REF=<some commit on release/vX.Y branch>. 39 40 ARG IDF_CLONE_URL=https://github.com/espressif/esp-idf.git 41 ARG IDF_CLONE_BRANCH_OR_TAG=master 42 ARG IDF_CHECKOUT_REF= 43 44 ENV IDF_PATH=/opt/esp/idf 45 ENV IDF_TOOLS_PATH=/opt/esp 46 47 RUN echo IDF_CHECKOUT_REF=$IDF_CHECKOUT_REF IDF_CLONE_BRANCH_OR_TAG=$IDF_CLONE_BRANCH_OR_TAG && \ 48 git clone --recursive \ 49 ${IDF_CLONE_BRANCH_OR_TAG:+-b $IDF_CLONE_BRANCH_OR_TAG} \ 50 $IDF_CLONE_URL $IDF_PATH && \ 51 if [ -n "$IDF_CHECKOUT_REF" ]; then \ 52 cd $IDF_PATH && \ 53 git checkout $IDF_CHECKOUT_REF && \ 54 git submodule update --init --recursive; \ 55 fi 56 57 # Install all the required tools, plus CMake 58 RUN $IDF_PATH/tools/idf_tools.py --non-interactive install required \ 59 && $IDF_PATH/tools/idf_tools.py --non-interactive install cmake \ 60 && $IDF_PATH/tools/idf_tools.py --non-interactive install-python-env \ 61 && rm -rf $IDF_TOOLS_PATH/dist 62 63 # Ccache is installed, enable it by default 64 ENV IDF_CCACHE_ENABLE=1 65 66 COPY entrypoint.sh /opt/esp/entrypoint.sh 67 68 ENTRYPOINT [ "/opt/esp/entrypoint.sh" ] 69 CMD [ "/bin/bash" ]