rfriendsでラジオ録音

ラジコ、らじるらじる、タイムフリーのラジオ番組を録音

dockerで「rfriendsでラジオ録音」

 今更ですが、dockerでrfriendsの環境を作ってみました。

 本来、rfriendsはdocker向きではありません。当然ですが、終了すると設定や録音データはすべて消えます。docker環境がある人でrfriendsがどんなものか試してみるにはいいかも。おまけで、ホスト共有を使ってデータが消えないようにする設定も記述しておきます。

 dockerに関しては1日足らずのにわかですので、突っ込みどころ満載だと思います。

1.docker環境

 docker環境に関しては構築済みを前提に話を進めます。 以下はrootで行って下さい。

1)ユーザradio作成

・ユーザradioを作成しdockerグループに所属させる。

# adduser radio

・ユーザradioをsudoユーザにする。

# echo "radio ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

・dockerグループを確認

# cat /etc/group

・ない場合、dockerグループを作成 

# groupadd docker

・グループに所属させる

# usermod -aG docker radio

・設定の確認

# id radio
uid=1000(radio) gid=1000(radio) groups=1000(radio),998(docker)

2)再起動&ログイン

# reboot

再起動後、radio/radioでログイン

2.実行

 Dockerイメージの作成から実行まで。

1)Dockerfile

Dockerfileをダウンロードする。

# cd ~/ 
# wget http://rfriends.s1009.xrea.com/files/Dockerfile.zip
# unzip Dockerfile.zip

作成したユーザradioの

ARG UID=1000
ARG GID=1000

が違っていたら修正してください。

2)Dockerイメージの作成

 実行には時間がかかります。

$ docker build -t rfriends2:1.0  .
Successfully built xxxxxxxxxxxx
Successfully tagged rfriends2:1.0

と表示されたら成功です。

3)Dockerイメージ一覧を確認

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE 
rfriends2 1.0 fbb3af581c88 10 minutes ago 812MB

4)Dockerコンテナの起動

ホスト側で

$ docker run -it rfriends2:1.0

5)rfriendsの実行

コンテナ側で

$ sudo cron &
$ sudo atd &
$ cd rfriends2
$ sh rfriends2.sh

6)終了

$ exit

設定したデータや録音データはすべて消えます。

3.データ保存

 ホスト共有という機能を使ってデータが消えないようにします。

1)rfriendsを展開

 ホスト側のディレクトリを参照するので 共有ディレクトリにrfriendsを展開します。 これは一回のみ実行。

ホスト側で

$ cd ~/ 
$ mkdir rfriends2
$ wget http://rfriends.s1009.xrea.com/files/rfriends2_latest_script.zip
$ unzip rfriends2_latest_script.zip

2)rfriendsを実行

ホスト側で

$ docker run -v /home/radio/rfriends2:/home/radio/rfriends2 -it rfriends2:1.0

 

コンテナ側で

$ sudo cron &
$ sudo atd &
$ cd rfriends2
$ sh rfriends2.sh

 

 ホスト共有をすることにより終了しても、データがホスト側のディレクトリに残ります。 例えば、ホストの/home/radio/rfriends2/usr/radikoradikoの録音データがあります。

4.その他

 Dockerは同一環境の再現という意味ではとても有用だと感じました。そういう用途のものなので当然ですが。

 

以上