DockerでNode/Nginx/Janusを単体で動かす。NginxでJanusのデモページをホスティングする。
Node.js
Dockerfile作成
FROM node:16.16.0-alpine WORKDIR /usr/src/app RUN apk update && apk add bash CMD ["/bin/bash"]
ビルド: 上で作成したDockerfileからイメージを作成する
$ docker image build -t node_img:latest . 👇 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE node_img latest 13651deec3a6 4 days ago 117MB
コンテナ起動: 上で作成したイメージからコンテナを作成し、起動する
$ docker run --name node_cnt -it node_img bash-5.1# bash-5.1# pwd /usr/src/app bash-5.1# exit exit 👇 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e198779aa4e node_img "docker-entrypoint.s…" 17 seconds ago Exited (0) 9 seconds ago node_cnt
以上で、docker上でNode.js(bashも使える)環境が整う。
Nginx
Dockerfileの作成
FROM nginx CMD ["nginx", "-g", "daemon off;"]
ビルド: 上で作成したDockerfileからイメージを作成する
$ docker image build -t nginx_img:latest . 👇 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx_img latest 53685b45547d 2 weeks ago 142MB
コンテナ起動: 上で作成したイメージからコンテナを作成し、起動する
$ docker run --name nginx_cnt -d -p 8080:80 nginx_img:latest 571c9fb70e7ad4632384b97c6f4e7cd14dfc1a43887a5966ddd8656a25f6cdb1 👇 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 571c9fb70e7a nginx_img:latest "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:8080->80/tcp nginx_cnt
以上で、docker上でNginx(ブラウザでhttp://localhost:8080/
にアクセスするとnginxが起動している)環境が整う。
Janus
Dockerfileの作成
FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt update RUN apt install -y sudo make wget git python3-pip RUN apt install -y \ libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake # libnice RUN pip3 install meson ninja && \ cd /root && \ git clone https://gitlab.freedesktop.org/libnice/libnice && \ cd libnice && \ meson --prefix=/usr build && ninja -C build && sudo ninja -C build install # libsrtp RUN cd /root && \ wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz && \ tar xfv v2.2.0.tar.gz && \ cd libsrtp-2.2.0 && \ ./configure --prefix=/usr --enable-openssl && \ make shared_library && sudo make install # janus-gateway RUN cd /root && \ git clone https://github.com/meetecho/janus-gateway.git && \ cd janus-gateway && \ sh autogen.sh && \ ./configure --prefix=/opt/janus && \ make && make install && make configs ENTRYPOINT ["/opt/janus/bin/janus"]
ビルド: 上で作成したDockerfileからイメージを作成する
$ docker image build -t janus_img:latest . 👇 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE janus_img latest 36355143bf20 3 minutes ago 819MB
コンテナ起動: 上で作成したイメージからコンテナを作成し、起動する
$ docker run --name janus_cnt -d -p 8088:8088 janus_img:latest 073bb8e0a550ca4216573504760026d5afa1c396becf030e8d3d685545d83b26 👇 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 073bb8e0a550 janus_img:latest "/opt/janus/bin/janus" 8 seconds ago Up 7 seconds 0.0.0.0:8088->8088/tcp janus_cnt
以上で、docker上でJanus(ブラウザでhttp://localhost:8088/janus/info
にアクセスするとJSONが返ってくる)環境が整う。
NginxでJanusのデモページをホスティングする
前提: NginxのDockerfileと同じ階層にhtml/videoroomtest.html
を配置しておく
JanusとNginxを起動
# Nginxを起動 $ docker run -v `pwd`/html:/usr/share/nginx/html --name nginx_cnt_demo -d -p 8080:80 nginx_img:latest 8b95ca497f08cd7db797354693ef11821add4a599800aa6e51e65e1a32dfbeec # Janusを起動(デモページのStartボタンが機能するようになる) $ docker run --name janus_cnt_demo -d -p 8088:8088 janus_img:latest 7a11a39c371a067e290f6750d5eda9cb96f1a2ab910c7bdcbe1c23bbba337749 👇 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7a11a39c371a janus_img:latest "/opt/janus/bin/janus" About a minute ago Up 59 seconds 0.0.0.0:8088->8088/tcp janus_cnt_demo 8b95ca497f08 nginx_img:latest "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp nginx_cnt_demo
以上で、docker上でNginxでJanusのデモページ(http://localhost:8080/videoroomtest.html
)を動かす環境が整う。