LoginSignup
2
1

More than 3 years have passed since last update.

AWSの仮想マシンでJETSON nanoのDockerコンテナを快適にBuildしたい

Last updated at Posted at 2019-07-14

JETSON nanoのBuild時間を短縮したい

参考にさせていただくのはこちらの記事。
Jetson 上で Docker イメージをビルドするのが辛かったので EC2 上にビルド環境を作った

nanoでも同じでいけるのではないか?

おそらく誰でもやっていると思いますが、勉強がてら自分でも調べながらやってみます。
AWSもAZUREも全然使っていないので練習練習。


一連の作業後、上の記事を書いた方が、もっと簡単にできる情報をアップされていらっしゃいました。
64bit ARM チップを積んだ Edge device 用に Docker image をビルドする
練習とかの必要がなければ、こちらを参考にするべきですね。

直前までAzureでRaspberryPiのBuildが出来ないかやってみたのですが、QEMUが安定動作するところまで持っていけなかったので、AWSに変更してUbuntu16マシン(xlarge)を使用します。

仮想マシンはいいやつを使う

AWSのUbuntu 16マシンを選択しました。(参考にしたページで16.0.4を使用していた為)
無課金のものでできれば一番いいのですが、試したところコアが少ないとmake -j4でのBuildでマシンが固まって停止しました。
Jetson nanoでネイティブビルドした時と症状が同じだったので、なるほど・・・という感じです。
多少課金されても、「快適にBuildしたい」という今回の趣旨を優先しました。

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install curl

curl -sSL https://get.docker.com/ | sh

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update

sudo apt install docker-ce

sudo usermod -aG docker ubuntu

docker run --rm --privileged multiarch/qemu-user-static:register

以上で準備完了。
Dockerfileを用意する。

Dockerfile
FROM multiarch/ubuntu-core:arm64-xenial

RUN apt-get update && \
    apt-get install -y vim

buildして実行する。

docker build -t arm64-xenial-vim -f Dockerfile .
docker run -it --rm arm64-xenial-vim:latest bash

#sudo docker run --rm --privileged multiarch/qemu-user-static:register

dockerに入ったら、以下のコマンドで確認

uname -m
file /bin/bash

重量級のBuildを試してみる

問題なさそうなので、2019/5にビルドで大変苦労した、産総研のOpenVSRAMをDockerでBuildします。
※無課金のマシンを使うと、CPUコアを複数使ったBuild(make -j4)で止まってしまったので、有償のxlargeマシンを使っています

git clone https://github.com/xdspacelab/openvslam
nano Dockerfile.desktop 

同梱のDockerfile.desktopを編集して、仮想マシンを追加します。
追加したのは先頭のみで、ubuntu:18:04は従来通り。

Dockerfile.desktop
FROM multiarch/ubuntu-core:arm64-xenial
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive
<続く>

build実行します。
この時、make -j4でのbuildがあちらこちらに記載されていた為、貧弱なマシン構成では12%くらいまでの進捗で固まってしまい、マシンを落とすこととなりました。
十分な数のコアとメモリを用意します。(8コア32GBで実施)
手動であちこち書き換えてBuildを通すのは辛いです。

docker build -t openvslam-desktop -f Dockerfile.desktop . --build-arg NUM_THREADS=4

Jetson nanoで、通してbuildするのに2日以上、作業の手間(やり直し)などを含めて10日くらいかかったのですが、今回、Buildにかかった時間はわずかに20分でした。

あとは、これが実機に移動させて動けば良いのですが・・・

(実施中)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1