KV260 - zephyrのビルド用のコンテナイメージの作成
-
はじめに
- KV260を使ってzephyr rtosの動作させています。
zephyr rtosをビルドする際に、Dockerコンテナ内でビルドしていたので、
Dockerコンテナの作成メモを記録として記載します。
- KV260を使ってzephyr rtosの動作させています。
-
作業環境
- VirtualBox 7.1.4
- Ubuntu24.04 LTS
- Docker version 28.0.4
- 作成Dockerfile
基となるコンテナのイメージはUbuntuのコンテナイメージを使用。
Dockerfile名は、zephyr_build_contとした。
zephyr_build_cont
FROM ubuntu:latest
ARG USER="default"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk \
xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1 sudo locales curl && rm -rf /var/lib/apt/list/*
SHELL ["/bin/bash", "-c"]
RUN locale-gen en_US.UTF-8
ENV LAN=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
RUN useradd -ms /bin/bash $USER && \
echo "$USER:$USER" | chpasswd && \
usermod -aG sudo $USER && \
echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
USER zephyr
WORKDIR /home/$USER
- Dockerfileによるコンテナのビルドとコンテナイメージの利用
生成するコンテナのイメージ名は、Dockerfile名と同様とした。
コンテナのイメージを利用する際には、
コンテナ内でビルドした生成ファイルを、コンテナの外で参照できるようにしておく。
下記では、dev_envフォルダが該当する。
USER=zephyr
SHARE_DIR=dev_env
CONT_HOME_DIR=/home/$USER/$SHARE_DIR
CONT_NAME=buildenv_zephyr
CONT_IMAGE=zephyr_build_cont
DOCKER_FILE=$CONT_IMAGE
sudo docker build -t $CONT_IMAGE --build-arg USER=$USER -f $DOCKER_FILE .
sudo docker run -it --name $CONT_NAME -v $(pwd)/$SHARE_DIR:$CONT_HOME_DIR $CONT_IMAGE
- コンテナ起動後
zephyrのビルド用のツールのインストール設定
USER=zephyr
PRJDIR=/home/zephyr/dev_env/zephyrproject
sudo mkdir -p $PRJDIR
sudo chown $USER:$USER $PRJDIR
python3 -m venv $PRJDIR/.venv
source $PRJDIR/.venv/bin/activate
pip install west
west init $PRJDIR
cd $PRJDIR
west update
west zephyr-export
west packages pip --install
sudo apt-get update
sudo apt-get install -y ca-certificates
sudo update-ca-certificates
cd $PRJDIR/zephyr
west sdk install
source $PRJDIR/.venv/bin/activate