FROM debian:bookworm-slim # Install required packages RUN apt-get update && apt-get install -y \ build-essential \ cmake \ gcc \ g++ \ git \ curl \ wget \ make \ openocd \ gdb-multiarch \ gcc-arm-none-eabi \ fish \ && rm -rf /var/lib/apt/lists/* # Install Rust toolchain RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly ENV PATH="/root/.cargo/bin:${PATH}" RUN rustup target add armv7-unknown-linux-gnueabihf RUN rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu RUN rustup override set nightly # # Clone FSBL code from the Xilinx repository # RUN git clone https://github.com/Xilinx/embeddedsw.git # # Build the FSBL # RUN cd embeddedsw/lib/sw_apps/zynq_fsbl/src/ && make BOARD=zed CFLAGS=-DFSBL_DEBUG_INFO # RUN cd mission_rust # RUN cargo update # RUN cargo build -Z build-std # Set a working directory # WORKDIR /workspace/mission_rust # Assuming the Rust project is copied into the container WORKDIR /workspace/ COPY . . # Build commands can be added here if needed # For example, to build the FSBL project: # RUN cd embeddedsw/lib/sw_apps/zynq_fsbl/src/ && make BOARD=zed CFLAGS=-DFSBL_DEBUG_INFO # RUN mkdir build_cli # RUN cd build_cli # RUN cmake -DCMAKE_TOOLCHAIN_FILE=../bsp_z7/cmake/arm-none-eabi.toolchain .. # Set the entrypoint to a shell ENTRYPOINT ["/usr/bin/fish"]