LoginSignup
0
0

More than 3 years have passed since last update.

[はじめてのRDBOX(6)]rdbox使ってみました:DockerImage 作成編

Last updated at Posted at 2019-08-30

はじめに

ROS の初心者が、とっても簡単なROSアプリを作ってみました。(連載記事です)

今回の記事の概要

  1. 前回までに構築したアプリ3つを RDBOX で利用可能な状態にするため、以下の4つの DockerImage を作成する
    1. ros-raspbian (arm)
    2. picam_pub_photo (arm)
    3. picam_sub_photo (amd64)
    4. picam_view_photo (amd64)
  2. 作成した DockerImage(2~4)を DockerHub に登録する
  • 今回使用した Dockerfile などの説明は長くなりそうなので別記事にする予定(時期未定)

事前準備

  • 一部の ROS アプリは、Raspberry PI で稼働することを想定しています
  • ARM アーキテクチャ向けのクロスbuild環境が必要になります
  • 以下の情報を参照して、事前にクロスbuild環境を準備してください

構築手順

GitHub からソースファイル一式を clone

  • DockerImage を作成するためには、Dockerfile を記述する必要がありますが、今回は GitHub より clone して使用します
  • clone 後、example-picam/dockerfiles 内のファイルを使用します
  • 以下(↓)は具体的な手順
$ mkdir -p ${HOME}/git
$ cd ${HOME}/git
$ git clone https://github.com/higuchi-toshio-intec/example-picam.git

環境変数などを設定し DockerHub へログイン

  • DockerHub アカウントを持たない方は、事前に作成してください
  • DockerHub へのログインに失敗する場合は、アカウントや認証情報を確認し再実行してください
  • 以下(↓)は具体的な手順
    • ↓ 'YourDockerHubAccount' は実際のアカウント情報に置き換える
$ BUILD_OPTS="--no-cache"
$ export HOCKERHUB_ACCOUNT="YourDockerHubAccount"
$ sudo docker login --username "${HOCKERHUB_ACCOUNT}"

[参考]ログイン成功時の表示

Password:
Login Succeeded

[参考]ログイン失敗時の表示

Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password

ros-raspbian

  • DockerHubにて公開されている公式の raspbian/stretch をベースとした ROS 環境の DockerImage を作る
    • なぜなら、Raspbian をベースとした ROS DockerImage を見つけることができなかった(2019/08上旬ころ)
    • また、ros.org から提供されているパッケージを用いた ROS 環境のinstallが成功しない(パッケージ群の取得エラー)
    • よって、Raspbian DockerImage をベースに ROS 環境を build する
  • @dyson8910 さんの記事「Raspberry Pi 3 にROS kinetic をインストールしてみました。」を参考にしています
  • この DockerImage は、他者利用を想定していないため、DockerHubには登録(push)していない
  • 以下(↓)は具体的な手順
$ cd ${HOME}/git/example-picam/dockerfiles/ros-raspbian
$ sudo docker build -t "ros-raspbian" .

picam_pub_photo

  • 静止画撮影し画像ファイルを Publish する ROS アプリの DockerImage を作る
  • この DockerImage は、RDBOX(k8s)からの利用を想定しており、公開されているDockerRepositoryである DockerHub に登録(push)する
  • 以下(↓)は具体的な手順
$ cd ${HOME}/git/example-picam/dockerfiles/pub_photo
$ sudo docker build -t "${HOCKERHUB_ACCOUNT}/picam_pub_photo" ${BUILD_OPTS} .
$ sudo docker push "${HOCKERHUB_ACCOUNT}/picam_pub_photo"

picam_sub_photo

  • 画像ファイルを Subscribe する ROS アプリの DockerImage を作る
    • DockerHubにて公開されている公式の ROS DockerImage をベースに構築する
    • 画像処理ツールとして OpenCV をインストール
  • この DockerImage は、RDBOX(k8s)からの利用を想定しており、公開されているDockerRepositoryである DockerHub に登録(push)する
  • 以下(↓)は具体的な手順
$ cd ${HOME}/git/example-picam/dockerfiles/sub_photo
$ sudo docker build -t "${HOCKERHUB_ACCOUNT}/picam_sub_photo" ${BUILD_OPTS} .
$ sudo docker push "${HOCKERHUB_ACCOUNT}/picam_sub_photo"

picam_view_photo

  • 画像ファイルを参照する Flask アプリの DockerImage を作る
    • DockerHubにて公開されている公式の Ubuntu DockerImageをベースに構築する
  • この DockerImage は、RDBOX(k8s)からの利用を想定しており、公開されているDockerRepositoryである DockerHub に登録(push)する
  • 以下(↓)は具体的な手順
$ cd ${HOME}/git/example-picam/dockerfiles/view_photo
$ sudo docker build -t "${HOCKERHUB_ACCOUNT}/picam_view_photo" ${BUILD_OPTS} .
$ sudo docker push "${HOCKERHUB_ACCOUNT}/picam_view_photo"

DockerHub repository の確認


記事リスト

  1. 概要編
  2. 画像参照アプリの構築編
  3. ROSパッケージ作成編
  4. ROS Subscriber編
  5. ROS Publisher編
  6. DockerImage 作成編(← 今回の記事)
  7. RDBOX(k8s) ポート転送編
  8. RDBOX(k8s) Subscriber アプリ編
  9. RDBOX(k8s) Publisher アプリ編
  10. 雑記
0
0
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
0
0