diff --git a/.devcontainer/Dockerfile.rpi b/.devcontainer/Dockerfile.rpi new file mode 100644 index 0000000..6e9526d --- /dev/null +++ b/.devcontainer/Dockerfile.rpi @@ -0,0 +1,40 @@ +FROM ubuntu:latest as base + +RUN apt-get update && apt-get install -y \ + git \ + wget \ + autoconf \ + automake \ + build-essential \ + bzip2 \ + ccache \ + device-tree-compiler \ + dfu-util \ + g++ \ + gcc \ + gcc-arm-none-eabi \ + libtool \ + make \ + ninja-build \ + cmake \ + python3-dev \ + python3-pip \ + python3-setuptools \ + xz-utils \ + && rm -rf /var/lib/apt/lists/* && apt-get clean + +FROM base as dev +RUN apt-get update && apt-get install -y nano vim emacs tmux htop tio minicom \ + && pip3 install --user -U west \ + && rm -rf /var/lib/apt/lists/* && apt-get clean + +COPY bashrc tmp +RUN mv /tmp/bashrc ~/.bashrc + +WORKDIR /workspaces + +ENV ZEPHYR_TOOLCHAIN_VARIANT=cross-compile +ENV CROSS_COMPILE=/usr/bin/arm-none-eabi- + +CMD ["/bin/bash"] + diff --git a/.devcontainer/bashrc b/.devcontainer/bashrc index 9fdb8f6..2bfae68 100644 --- a/.devcontainer/bashrc +++ b/.devcontainer/bashrc @@ -1,4 +1,5 @@ export LS_OPTIONS='-F --color=auto' +export PATH=~/.local/bin:${PATH} alias ls='ls $LS_OPTIONS' if [ "${CODESPACES}" = "true" ]; then export WORKSPACE_DIR="$HOME/workspace/zmk" diff --git a/docker_dev.sh b/docker_dev.sh new file mode 100755 index 0000000..b0ffd2b --- /dev/null +++ b/docker_dev.sh @@ -0,0 +1,11 @@ +#!/bin/bash +docker run -it \ + --name zmk-ardux-dev \ + --network host \ + --privileged \ + -v /dev:/dev \ + -v zmk:/workspaces/zmk \ + -v ./:/workspaces/zmk-ardux \ + -v ./.build:/workspaces/zmk/app/build \ + zmk-ardux:latest \ + /bin/bash diff --git a/docker_setup_rpi.sh b/docker_setup_rpi.sh new file mode 100755 index 0000000..3897b9a --- /dev/null +++ b/docker_setup_rpi.sh @@ -0,0 +1,26 @@ +#!/bin/bash +docker volume create zmk + +cd .devcontainer + +docker build --network host -t zmk-ardux:latest -f ./Dockerfile.rpi + +docker run --rm \ + --network host \ + -v zmk:/workspaces/zmk \ + zmk-ardux:latest \ + /bin/bash -c "git clone https://github.com/zmkfirmware/zmk /workspaces/zmk/" + +docker run \ + --name zmk-ardux-setup \ + --network host \ + -v zmk:/workspaces/zmk \ + zmk-ardux:latest \ + /bin/bash -c "source ~/.bashrc && cd /workspaces/zmk && west init -l app/ && west update && west zephyr-export && pip3 install --user -r zephyr/scripts/requirements-base.txt" + +docker commit zmk-ardux-setup zmk-ardux:latest + +docker rm -f zmk-ardux-setup + +cd .. + diff --git a/docker_snapshot.sh b/docker_snapshot.sh new file mode 100755 index 0000000..4e64ddc --- /dev/null +++ b/docker_snapshot.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker commit zmk-ardux-setup zmk-ardux:latest