/ tools / docker / Dockerfile
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" ]