ESP32-CAN/support/idf-rust/Dockerfile

34 lines
1.5 KiB
Docker

FROM espressif/idf
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
ENV RUSTUP_HOME=/opt/rust
ENV CARGO_HOME=/opt/cargo
ENV PATH=/opt/cargo/bin:/opt/rust/bin:/opt/xtensa-esp32-elf-clang/bin:$PATH
ARG VERSION="1.54.0-dev"
ARG ARCH="x86_64-unknown-linux-gnu"
ARG RUST_DIST="rust-${VERSION}-${ARCH}"
ARG RUST_SRC_DIST="rust-src-${VERSION}"
ARG TOOLCHAIN_DESTINATION_DIR="/opt/esp"
RUN curl https://sh.rustup.rs -sSf | bash -s -- --profile minimal --default-toolchain nightly -y
WORKDIR /opt
#RUN wget -q https://dl.espressif.com/dl/idf-rust/dist/${ARCH}/${RUST_DIST}.tar.xz \
RUN wget -q https://github.com/georgik/idf-rust-build/releases/download/v${VERSION}/${RUST_DIST}.tar.xz \
&& tar xvf ${RUST_DIST}.tar.xz \
&& ./${RUST_DIST}/install.sh --destdir=${TOOLCHAIN_DESTINATION_DIR} --prefix="" --without=rust-docs \
&& rm -rf ${RUST_DIST} ${RUST_DIST}.tar.xz
RUN wget -q https://dl.espressif.com/dl/idf-rust/dist/noarch/${RUST_SRC_DIST}.tar.xz \
&& tar xvf ${RUST_SRC_DIST}.tar.xz \
&& ./${RUST_SRC_DIST}/install.sh --destdir=${TOOLCHAIN_DESTINATION_DIR} --prefix="" --without=rust-docs \
&& rm -rf ${RUST_SRC_DIST} ${RUST_SRC_DIST}.tar.xz \
&& rustup toolchain link esp /opt/esp \
&& rustup default esp
RUN wget -q https://dl.espressif.com/dl/idf-rust/dist/${ARCH}/xtensa-esp32-elf-llvm11_0_0-llvmorg-11-init-21249-g36dbc8b-linux-amd64.tar.xz \
&& tar xf xtensa-esp32-elf-llvm11_0_0-llvmorg-11-init-21249-g36dbc8b-linux-amd64.tar.xz \
&& rm xtensa-esp32-elf-llvm11_0_0-llvmorg-11-init-21249-g36dbc8b-linux-amd64.tar.xz