開発環境構築(Container AdamApp)
目次
- 1 目次
- 2 はじめに
- 3 開発で推奨する開発環境
- 4 開発環境構築手順
- 4.1 開発者ライセンスの取得
- 4.2 Docker環境の準備
- 4.2.1 プロキシサーバー経由で接続している場合
- 4.3 qemuインストール
- 4.3.1 qemuのインストール
- 4.3.2 docker buildxの準備
- 4.4 開発環境構築のチェック
- 4.5 Docker拡張モジュールのインストール
はじめに
ここではiPRO Camera SDKを利用してコンテナアプリを開発する環境を構築する手順を説明します。また、このチュートリアルではSDKのインストールディレクトリを${SDK_DIR}
として記載します。
Container AdamAppはSoCがambaCV5XのカメラファームウェアVer3.30以降が対象で、SDK ver2.10以降で開発可能です。カメラのSoCについてはこちらを確認ください。
開発で推奨する開発環境
サポート対象となる推奨環境は以下となります。
開発用OS :Linux (64bit)
ディストリビューション :Ubuntu 22.04 LTS, Ubuntu 20.04 LTS
開発環境構築手順
開発者ライセンスの取得
下記より開発者ライセンスを申請し、取得しておいてください。
お問い合わせ・SDKダウンロード - Development Partner Portal (i-pro.com)
Docker環境の準備
開発PCにDocker Engineをインストールします。Install Docker Engine on Ubuntu に従って、Docker Engineをインストールします。以下はページの概略を記載します。
念のため旧パッケージをアンインストールします。
ただし、アンインストールして問題ないパッケージか事前によくご確認ください。削除したことで問題が発生しても責任は負いかねます。for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-getで使用するDocker用レポジトリを追加します。echoから始まる行は4行まとめてコピペしてください。
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
最新のDocker engineをインストールします。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Do you want to continue? [Y/n] と聞かれたら Y を入力してEnterキーを押してください。
インストール後の動作確認です。
成功した場合の表示例です。
プロキシサーバー経由でインターネットに接続される環境では、上記は失敗します。
以下の「プロキシサーバー経由で接続している場合」の手順を実施してください。
WSL2を使用してWindows PC上に環境を構築している場合、Ubuntu-22.04でDockerが起動できない現象が発生しています。
その場合、WSL2のUbuntu 22.04でDockerが起動しない問題対応 #Ubuntu22.04 - Qiita
上記情報などを参考に、iptables-legacyを使用するようにしてください。
dockerコマンドはデフォルトではroot権限が必要なので、ユーザー権限でも実行できるように、dockerグループにユーザーを追加します。 公式ドキュメントでは、 Linux post-installation steps for Docker Engine に記載されています。
dockerユーザーグループを作成します。
groupadd: group 'docker' already exists と表示される場合は、すでにグループが作成されていますので続行します。
通常使用するユーザーをdocker groupに追加します。
設定を反映します。
sudo無でdockerが実施できることを確認します。
成功した場合の表示例です。
systemdの設定を変更して、起動時にDockerサービスが自動起動する設定を行います。
起動時にdockerサービスが起動するかどうか確認するために一度Ubuntuを再起動します。 WSLではubuntuの端末で再起動はできません。 いったん×ボタンでウィンドウを終了させた後、powershellを起動して以下を入力します。
その後スタートメニューから改めてUbuntu 22.04 LTSを起動します。
以下のコマンドを入力し、正しくバージョン番号が表示されれば成功です。
成功したときの表示例です。
プロキシサーバー経由で接続している場合
Dockerをプロキシサーバー経由でインターネットにアクセスさせる手順を実施します。プロキシサーバーを使用していない場合は、実施する必要はありません。
Dockerクライアントの設定ファイルを作成して以下のように記載します。
記載する内容は以下です。
特定のIPアドレスだけをプロキシなしで接続したい場合は”noProxy”で設定できます。詳細は プロキシサーバを使うように Docker を設定 — Docker-docs-ja 24.0 ドキュメント をご覧ください。
ファイルを保存します。
qemuインストール
コンテナ版追加アプリを作成するために、開発環境にインストールする必要のある、qemuのインストール方法を記載します。
qemuのインストール
docker buildxの準備
experimental 機能や BuildKit を使うため、環境変数を追加設定 & 反映 します。
設定ファイルを開きます。
以下を末尾に追加
保存します。
buildxが使えるようになっているか確認します。
出力例
現在build可能なアーキテクチャを確認します。
出力例
この出力の中に linux/arm64 があれば成功です。
開発環境構築のチェック
環境構築ができたかどうかのチェックを行います。 ※結果は一例ですので、環境によって異なります。
Docker Engineがインストール済みであること
インストール出来ていない場合はDocker Engineをインストールしてください。
Dockerデーモンが起動中であること
【systemdを使用している場合】Activeが inactive (dead) になっている場合は、
systemctl start docker
コマンドでサービスを起動してください。docker buildxがインストールされていること
何も表示されていない場合は、 Docker Buildx に従って個別にインストールしてください。
qemuがインストールされ、Arm64ビットアプリがクロスビルド可能になっていること
以下のリストの中にlinux/arm64
があることを確認してください。linux/arm64
がない場合は、qemuをインストールしてください。
Docker拡張モジュールのインストール
下記よりDocker拡張モジュールをダウンロードし、インストールしてください。Container AdamApp for Azure IoT Edgeのみに対応した古いDocker拡張モジュールがインストールされている場合はアップデートされます。
i-PRO Docker®拡張モジュール | i-PRO Products
下記の赤枠画面よりインストールしてください。緑枠のように表示されれば成功です。
Container AdamApp for Azure IoT Edgeのみに対応した古いDocker拡張モジュールでクラウド対応をONにしている場合はOFFにする必要があります。
以下のURLでカメラ(IPアドレスが192.168.0.10の場合)にアクセスします。
クラウド対応が「On」になっている場合は「Off」に変更して「設定」を押します。