Docker for ICAPS

Docker のまとめ。

Docker Images for Robotics
Docker on Ubuntu
Docker for ICAPS(CLIPS)

■ 準備1a(Fedora)
Docker のインストール

sudo dnf install docker

龍大内から使う時は,Proxy 環境下での Docker の使用方法(Docker デーモンが systemd に管理されている場合)より,/lib/systemd/system/docker.service に以下を追記.

Environment='http_proxy=http://cache.st.ryukoku.ac.jp:8080/'

■ 準備1b(Ubuntu)

sudo apt-get install docker.io
sudo mkdir -p /etc/systemd/system/docker.service.d
cd /etc/systemd/system/docker.service.d
echo "[Service] > http-proxy.conf
echo "Environment=\"http_proxy=http://cache.st.ryukoku.ac.jp:8080/\" >> http-proxy.conf
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl show --property=Environment docker

/etc/systems/system/docker.service.d のhttp-proxy.conf は,龍大から使いたいときのみ必要です.

■ 準備2(Fedora, Ubuntu)

sudo systemctl start docker
sudo systemctl enable docker

Docker のテスト

sudo docker run --rm hello-world

Docker の準備

mkdir Docker
cd Docker
git clone https://github.com/timn/docker-robotics
mkdir BabyTigers
cd BabyTigers
cp -r ../docker-robotics/rcll-sim-rosplan/* .
sudo docker build -f Dockerfile.2016-f25-kinetic -t image:latest .

龍大内では,dnf でrepoが見つからないと怒られます。

Error: Failed to synchronize cache for repo 'updates' 

龍大内では、dnf のproxy の設定が必要なので、Step 2を以下に書き換えます。

# Install additional ROSPlan dependencies
RUN echo "proxy=http://cache.st.ryukoku.ac.jp:8080" >> /etc/dnf/dnf.conf && dnf install -y flex python2-pymongo && dnf clean all

ていうか環境変数の設定が必要なんですね.以下をDockerfile.2016-f25-kinetic の最初の方に追加しておきましょう.

ENV http_proxy http://cache.st.ryukoku.ac.jp:8080
ENV https_proxy $http_proxy
RUN git config --global http.proxy $http_proxy
RUN git config --global https.proxy $https_proxy

■ ICAPS2017 の準備
kbsg のサーバにログイン(一回やればOK)

sudo docker login registry.kbsg.rwth-aachen.de

□ ICAPS2017 のベース(CLIPS用)の作成
※これをやると,サーバのイメージを上書きしちゃうので,普段はやらないで下さい.

git clone https://github.com/timn/docker-robotics
mkdir BabyTigers
cp docker-robotics/fawkes-robotino BabyTigers/
cd BabyTigers
sudo docker build -f Dockerfile.2016-f25-kinetic -t rcll-sim-babytigers:latest .
sudo docker tag rcll-sim-babytigers:latest registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest
sudo docker push registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest

■ ICAPS2017 のBabyTigres を使う
kbsg のdocker のイメージを取ってくるには,

sudo docker pull registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest
sudo docker run --rm -ti registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest  bash

□ ICAPS2017 にBabyTigers のイメージをupload
今はDockerfile.2016-f25-kinetic ではなく,Dockerfile.icaps2017-btr です.
※これをやると,サーバのイメージを上書きしちゃうので,普段はやらないで下さい.

sudo docker build -f Dockerfile.2016-f25-kinetic -t rcll-sim-babytigers:latest .
sudo docker tag rcll-sim-babytigers:latest registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest
sudo docker push registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest

■ fawkes-robotino の差し替え
btr2017 の下からスタート.

cd icaps2017/fawkes-robotino
make clean -j4
rm bin/*.log
cd ..
tar zcvf ../docker/BabyTigers/fawkes-robotino-babytigers.tar.gz fawkes-robotino
cd ../docker/BabyTigers
sudo docker build -f Dockerfile.icaps2017-btr -t rcll-sim-babytigers:latest .
sudo docker tag rcll-sim-babytigers:latest registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest
sudo docker push registry.kbsg.rwth-aachen.de/babytigers/rcll-sim-babytigers:latest

現在,以下のDocerfile を使っています.

FROM timn/rcll-sim:2016-f25-kinetic
RUN rm -rf /opt/fawkes-robotino
ADD fawkes-robotino-babytigers.tar.gz /opt
RUN ln -s /usr/include/xmlrpc.h /usr/include/XmlRpc.h
RUN /bin/bash -c "source /opt/ros/$ROS_DISTRO/setup.bash && \
    cd /opt/fawkes-robotino && \
    make -j$(nproc) all gui ${VERBOSE_FLAG} CFLAGS_MTUNE_NATIVE= &&\
    find . -name '.objs_*' -prune -exec rm -rf {} \; &&\
    find . -name '.deps_*' -prune -exec rm -rf {} \;"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*