Block a user
embedded/complete (latest)
Published 2026-01-25 21:09:20 +03:00 by tevfik
Installation
docker pull git.bezg.in/tevfik/embedded/complete:latestsha256:e99ad3959a49d1ae238457f6c50f107a60a96bc534d902e530c3d3fe215e2557
Image Layers
| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.ref.name=ubuntu |
| LABEL org.opencontainers.image.version=22.04 |
| ADD file:b499000226bd9a7c562ffa8eeb86e2d170f2a563310db6c2d79562ab53e5cb6e in / |
| CMD ["/bin/bash"] |
| LABEL maintainer=Embedded Development |
| LABEL description=Complete embedded development environment with all toolchains |
| LABEL version=1.0 |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV TZ=UTC |
| RUN /bin/sh -c apt-get update && apt-get install -y build-essential cmake ninja-build git git-lfs wget curl python3 python3-pip python3-venv libusb-1.0-0-dev libtool pkg-config autoconf automake texinfo libftdi-dev libhidapi-dev libjaylink-dev libjim-dev gdb-multiarch screen minicom flex bison gperf ccache libffi-dev libssl-dev dfu-util udev xxd ca-certificates && rm -rf /var/lib/apt/lists/* # buildkit |
| ARG ARM_TOOLCHAIN_VERSION=13.3.rel1 |
| RUN |1 ARM_TOOLCHAIN_VERSION=13.3.rel1 /bin/sh -c cd /tmp && wget -q https://developer.arm.com/-/media/Files/downloads/gnu/${ARM_TOOLCHAIN_VERSION}/binrel/arm-gnu-toolchain-${ARM_TOOLCHAIN_VERSION}-x86_64-arm-none-eabi.tar.xz # buildkit |
| RUN |1 ARM_TOOLCHAIN_VERSION=13.3.rel1 /bin/sh -c cd /tmp && tar -xf arm-gnu-toolchain-${ARM_TOOLCHAIN_VERSION}-x86_64-arm-none-eabi.tar.xz -C /opt && rm -f arm-gnu-toolchain-${ARM_TOOLCHAIN_VERSION}-x86_64-arm-none-eabi.tar.xz && ln -s /opt/arm-gnu-toolchain-${ARM_TOOLCHAIN_VERSION}-x86_64-arm-none-eabi /opt/arm-toolchain # buildkit |
| ARG RISCV_TOOLCHAIN_VERSION=13.2.0-2 |
| RUN |2 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 /bin/sh -c cd /tmp && wget -q https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v${RISCV_TOOLCHAIN_VERSION}/xpack-riscv-none-elf-gcc-${RISCV_TOOLCHAIN_VERSION}-linux-x64.tar.gz # buildkit |
| RUN |2 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 /bin/sh -c cd /tmp && tar -xf xpack-riscv-none-elf-gcc-${RISCV_TOOLCHAIN_VERSION}-linux-x64.tar.gz -C /opt && rm -f xpack-riscv-none-elf-gcc-${RISCV_TOOLCHAIN_VERSION}-linux-x64.tar.gz && ln -s /opt/xpack-riscv-none-elf-gcc-${RISCV_TOOLCHAIN_VERSION} /opt/riscv-toolchain # buildkit |
| RUN |2 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 /bin/sh -c git clone --depth 1 --branch v0.12.0 https://github.com/openocd-org/openocd.git /tmp/openocd # buildkit |
| RUN |2 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 /bin/sh -c cd /tmp/openocd && ./bootstrap && ./configure --enable-stlink --enable-jlink --enable-ftdi --enable-cmsis-dap --enable-picoprobe --prefix=/usr/local && make -j$(nproc) && make install && cd / && rm -rf /tmp/openocd # buildkit |
| RUN |2 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 /bin/sh -c cd /tmp && git clone --depth 1 https://github.com/stlink-org/stlink.git && cd stlink && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build && cmake --install build && cd / && rm -rf /tmp/stlink # buildkit |
| RUN |2 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 /bin/sh -c cd /tmp && wget --post-data 'accept_license_agreement=accepted' https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb -O JLink.deb 2>/dev/null || wget -q https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb -O JLink.deb && dpkg -i JLink.deb || apt-get install -f -y && rm JLink.deb && ln -s /opt/SEGGER/JLink/JLinkExe /usr/local/bin/JLinkExe 2>/dev/null || true && ln -s /opt/SEGGER/JLink/JLinkGDBServer /usr/local/bin/JLinkGDBServer 2>/dev/null || true # buildkit |
| ARG ESP_IDF_VERSION=v5.1.2 |
| ENV IDF_PATH=/opt/esp/esp-idf |
| ENV IDF_TOOLS_PATH=/opt/esp |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c mkdir -p ${IDF_PATH} && git clone --recursive --depth 1 --branch ${ESP_IDF_VERSION} https://github.com/espressif/esp-idf.git ${IDF_PATH} # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c cd ${IDF_PATH} && ./install.sh esp32 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c cd ${IDF_PATH} && ./install.sh esp32s2,esp32s3 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c cd ${IDF_PATH} && ./install.sh esp32c3,esp32c6 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pip3 install --no-cache-dir platformio esptool # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install atmelavr # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install atmelsam # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install espressif8266 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install espressif32 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install ststm32 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install nordicnrf52 # buildkit |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c pio platform install raspberrypi # buildkit |
| ENV PATH=/opt/arm-toolchain/bin:/opt/riscv-toolchain/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN |3 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 /bin/sh -c echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", MODE="0666"' > /etc/udev/rules.d/49-stlink.rules && echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="1366", MODE="0666"' > /etc/udev/rules.d/49-jlink.rules && echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", MODE="0666"' > /etc/udev/rules.d/49-ftdi.rules && echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="045b", MODE="0666"' > /etc/udev/rules.d/49-renesas.rules && curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/platformio/assets/system/99-platformio-udev.rules -o /etc/udev/rules.d/99-platformio-udev.rules # buildkit |
| ARG USERNAME=developer |
| ARG USER_UID=1000 |
| ARG USER_GID=1000 |
| RUN |6 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 USERNAME=developer USER_UID=1000 USER_GID=1000 /bin/sh -c groupadd --gid $USER_GID $USERNAME && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME && usermod -aG dialout,plugdev $USERNAME && chown -R $USERNAME:$USERNAME ${IDF_TOOLS_PATH} # buildkit |
| WORKDIR /workspace |
| USER developer |
| RUN |6 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 USERNAME=developer USER_UID=1000 USER_GID=1000 /bin/sh -c echo "source ${IDF_PATH}/export.sh > /dev/null 2>&1" >> /home/$USERNAME/.bashrc # buildkit |
| RUN |6 ARM_TOOLCHAIN_VERSION=13.3.rel1 RISCV_TOOLCHAIN_VERSION=13.2.0-2 ESP_IDF_VERSION=v5.1.2 USERNAME=developer USER_UID=1000 USER_GID=1000 /bin/sh -c arm-none-eabi-gcc --version && riscv-none-elf-gcc --version && openocd --version && JLinkExe -version 2>/dev/null || echo "J-Link installed (license check required)" && bash -c "source ${IDF_PATH}/export.sh && idf.py --version" && echo "Complete Embedded Development Container Ready!" && echo "Platforms: ARM Cortex-M, ESP32, RISC-V, Renesas RA, PlatformIOrsion" && echo "Complete Embedded Development Container Ready!" # buildkit |
| CMD ["/bin/bash"] |
Labels
| Key | Value |
|---|---|
| description | Complete embedded development environment with all toolchains |
| maintainer | Embedded Development |
| org.opencontainers.image.ref.name | ubuntu |
| org.opencontainers.image.version | 22.04 |
| version | 1.0 |