diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0fb2731 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +# +# To Build: +# docker build -t usbvalve/arduino-cli . +# +# To Run: +# docker run --rm --name usbvalve -v $PWD:/mnt usbvalve/arduino-cli /mnt/USBvalve +# + +FROM ubuntu:22.04 +WORKDIR /app + +# OS setup +RUN apt-get update -y \ + && apt-get install -y git wget python3 \ + && apt-get autoremove -y \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# arduino-cli setup +RUN cd /app \ + && git clone --recursive https://github.com/arduino/arduino-cli.git \ + && cd arduino-cli \ + && ./install.sh \ + && export PATH=$PATH:/app/arduino-cli/bin \ + && arduino-cli --additional-urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core search 2040 \ + && arduino-cli --additional-urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core install rp2040:rp2040 \ + && arduino-cli lib install "Adafruit TinyUSB Library" \ + && arduino-cli lib install "ssd1306" \ + && arduino-cli lib install "Pico PIO USB" \ + && arduino-cli lib install "SSD1306Ascii" + +# Compilation setup +RUN echo "#!/bin/bash" > /app/entrypoint.sh \ + && echo "export PATH=\$PATH:/app/arduino-cli/bin" >> /app/entrypoint.sh \ + && echo "arduino-cli compile --fqbn rp2040:rp2040:rpipico --board-options \"usbstack=tinyusb\" --board-options \"freq=240\" --output-dir \"/mnt/USBvalve_out\" \"\$1\"" >> /app/entrypoint.sh \ + && chmod +x /app/entrypoint.sh + +ENTRYPOINT ["/app/entrypoint.sh"]