研究会

機械学習、データベース、分散システム、その他技術的なことを書く研究会です

Node.js で WebRTC を試せる Docker イメージを公開しました

概要

ブラウザー間リアルタイムコミュニケーションを実現する WebRTC の機能を Node.js で使えるようにするプロジェクト node-webrtc をすぐに試せる Docker イメージを Docker Hub で公開しました。

tsujio/node-webrtc - Docker Hub

詳細

WebRTCブラウザー間で P2P リアルタイムコミュニケーションを実現する規格・API ですが、この機能を Node.js で使えるようにするプロジェクトとして node-webrtc があります。

Node.js で WebRTC の機能が使えるとブラウザーと連携した P2P ネットワークを構築できて色々と夢が広がります。なので node-webrtc を試したくなるのですが、環境の構築に必要なライブラリをインストールするのに手間がかかるし、そもそもベースとなる環境によって必要なライブラリが違ったりして試行錯誤が必要になります。

そこでそれらの下準備を全て終えた Docker イメージを Docker Hub で公開し、誰でも手軽に node-webrtc を試せるようにしました。

以下のコマンドを実行すると node-webrtc のテストが走るようになっています。

docker pull tsujio/node-webrtc
docker run tsujio/node-webrtc

また Dockerfile は以下の通りです。

# 自分自身も試行錯誤した結果なので必要最低限になっていない可能性大です。

#
# Dockerfile for node-webrtc
#

FROM ubuntu:latest
MAINTAINER tsujio

WORKDIR /opt

# Install required packages
RUN apt-get update -y
RUN apt-get install -y git
RUN apt-get install -y python python-dev python-pip python-virtualenv
RUN apt-get install -y subversion
RUN apt-get install -y pkg-config
RUN apt-get install -y g++
RUN apt-get install -y libnss3-dev
RUN apt-get install -y libasound2-dev
RUN apt-get install -y libpulse-dev
RUN apt-get install -y libjpeg62-dev
RUN apt-get install -y libxv-dev
RUN apt-get install -y libgtk2.0-dev
RUN apt-get install -y libexpat1-dev
RUN apt-get install -y libcups2-dev
RUN apt-get install -y libexif-dev
RUN apt-get install -y libxss-dev
RUN apt-get install -y libgnome-keyring-dev
RUN apt-get install -y libudev-dev
RUN apt-get install -y libdrm-dev
RUN apt-get install -y libgconf2-dev
RUN apt-get install -y libgcrypt11-dev
RUN apt-get install -y libpci-dev
RUN apt-get install -y libxtst-dev
RUN apt-get install -y curl

# Install Node.js and npm
RUN curl http://nodejs.org/dist/v0.10.29/node-v0.10.29-linux-x64.tar.gz | tar xvz
ENV PATH $PATH:/opt/node-v0.10.29-linux-x64/bin
ENV NODE_PATH /opt/node-v0.10.29-linux-x64/lib/node_modules

# Install node-webrtc
RUN git clone https://github.com/js-platform/node-webrtc.git
RUN cd node-webrtc && npm install -g
RUN npm install -g tape node-pre-gyp ws node-static-alias minimist

CMD cd $NODE_PATH/wrtc && npm test

まとめ

  • Node.js で WebRTC なら node-webrtc を

  • Docker なら作ったものを試してもらう環境を簡単に配布できて便利

  • インストーラー配布の代わりに Docker イメージ配布が流行ったりして