## Build qmk-cli FROM python:3.8-slim-buster AS qmk_cli_builder WORKDIR /app COPY qmk_cli . RUN pip3 install build RUN python3 -m build ## Base container FROM debian:11-slim # Install dependencies RUN apt-get update && \ apt-get install --no-install-recommends -y \ avrdude \ binutils-arm-none-eabi \ binutils-riscv64-unknown-elf \ build-essential \ ca-certificates \ clang-format-11 \ dfu-programmer \ dfu-util \ dos2unix \ ca-certificates \ gcc \ gcc-arm-none-eabi \ gcc-riscv64-unknown-elf \ git \ libfl2 \ libnewlib-arm-none-eabi \ picolibc-riscv64-unknown-elf \ python3 \ python3-pip \ software-properties-common \ tar \ teensy-loader-cli \ unzip \ tar \ wget \ zip \ && rm -rf /var/lib/apt/lists/* # Install python packages RUN python3 -m pip install --upgrade \ pip \ setuptools \ wheel \ nose2 \ yapf # upgrade avr-gcc... for reasons? RUN /bin/bash -c "set -o pipefail && \ wget -q https://github.com/ZakKemble/avr-gcc-build/releases/download/v8.3.0-1/avr-gcc-8.3.0-x64-linux.tar.bz2 -O - | tee /tmp/asdf.tar.bz2 | md5sum -c <(echo '588D0BEA4C5D21A1A06AA17625684417 -') && \ tar xfj /tmp/asdf.tar.bz2 --strip-components=1 -C / && \ rm -rf /share/ /tmp/*" # Install qmk-cli COPY --from=qmk_cli_builder /app/dist /tmp/dist RUN python3 -m pip install /tmp/dist/qmk-*.whl && \ rm -rf /tmp/dist # Copy qmk repo. # Make sure you've pulled submodules first! COPY qmk_firmware /qmk_firmware RUN chmod -R 777 /qmk_firmware VOLUME /qmk_firmware/keyboards VOLUME /build_output WORKDIR /qmk_firmware ENV SKIP_GIT true COPY entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"]