本コラムの目標
本コラムはTorizonCore builderにて、DockerコンテナをTorizonOSイメージに反映させることを目標とする。
対象デバイス:Verdin-imx8m Plus、 Evaluation Board
環境構築
下記コラムの「セットアップ」を参照
https://circuit-toradex.com/column/column-966/
※エラー事例
tcb-env-setup.shをsource時、下記のようなエラーが発生する場合がある。
Got permission denied while trying to connect to the Docker daemon socket at …以下省略
その場合、権限問題によるエラーのため、下記コマンドを実行してdocker.sockに権限を付与する。
# sudo chmod 666 /var/run/docker.sock
イメージのカスタマイズ
Step1:イメージやソースの取得
ローカルのTorizonCore Builderのワークスペースにイメージを配置し、下記コマンドを実行する。
※注 torizon-core-docker-verdin-imx8mp-Tezi_6.8.0+build.22.tar は今回のカスタムを行うベースのTorizonOSイメージ。
# torizoncore-builder images unpack torizon-core-docker-verdin-imx8mp-Tezi_6.8.0+build.22.tar
Step2:YAMLファイルの作成
YAMLファイルのテンプレートを下記コマンドにて、作成する。
# torizoncore-builder build –create-template
Docerイメージを取得する。
Docerイメージの取得方法は2つあり、ビルド毎にイメージを取得する方法とコマンド&ディレクトリ作成を行う方法がある。
今回は後者を採用する。
下記リンクの演習用のymlファイルを任意の場所に配置する。
https://docs.toradex.com/108978-docker-compose-example-armhf.yml
今回使用するdocker-compose-example-armhf.yml
services: weston:
image: torizon/weston:2
# Required to get udev events from host udevd via netlink
network_mode: host
volumes:
– type: bind
source: /tmp
target: /tmp
– type: bind
source: /dev
target: /dev
– type: bind
source: /run/udev
target: /run/udev
cap_add:
– CAP_SYS_TTY_CONFIG
# Add device access rights through cgroup…
device_cgroup_rules:
# … for tty0
– ‘c 4:0 rmw’
# … for tty7
– ‘c 4:7 rmw’
# … for /dev/input devices
– ‘c 13:* rmw’
# … for /dev/dri devices
– ‘c 226:* rmw’
command: –developer weston-launch –tty=/dev/tty7 –user=torizon
healthcheck:
test: [“CMD”, “test”, “-S”, “/tmp/.X11-unix/X0”]
interval: 5s
timeout: 4s
retries: 6
start_period: 10skiosk
image: torizon/kiosk-mode-browser:2
security_opt:
– seccomp:unconfined
command: –browser-mode http://www.toradex.com
shm_size: ‘256mb’
device_cgroup_rules:
# … for /dev/dri devices
– ‘c 226:* rmw’
volumes:
– type: bind
source: /tmp
target: /tmp
– type: bind
source: /var/run/dbus
target: /var/run/dbus
– type: bind
source: /dev/dri
target: /dev/dri
depends_on:
weston:
condition: service_healthy
下記コマンドにて事前構築済みのイメージを含むディレクトリをパラメーターとして渡す。
# torizoncore-builder bundle custom/docker-compose-example-armhf.yml –bundle-directory bundle –platform linux/arm/v7
※custom = 配置場所、docker-compose-example-armhf.yml = 演習用ymlファイル
bundleフォルダが存在すれば、構築済みイメージが格納されている。
YAMLファイルを下記のように編集する。
今回使用するtcbuild.yaml
input:
easy-installer:
local: images/torizon-core-docker-verdin-imx8mp-Tezi_6.8.0+build.22.tar
output:
easy-installer:
local: torizon-core-docker-verdin-imx8mp-Tezi_6.8.0.CUSTOM
bundle:
dir: bundle/
Step3:YAMLファイルをビルドする
下記コマンドにてビルドを行う。
# torizoncore-builder build
Step5:イメージをデバイスにデプロイする
展開方法は下記コラムを参照。
Verdin iMX8にOSイメージをインストールする方法(Verdin iMX8 + Development Board)
デバイス内で下記コマンドを実行し、Dockerイメージが存在するのを確認する。
# docker images
下記のような返答があれば成功。
以上、簡単ではございますが開発の一助となれば幸いです。