Docker
Chinachu
mirakurun

Chinachu + Mirakurun をdockerに閉じ込めた話

More than 1 year has passed since last update.


3行纏め


利用方法

GithubのREADME.mdを読んでください


[参考] CentOSで1から構成する場合

下記構成を想定しています

- CentOS 7 x86_64

- PT3

- SmartCard Reader SCR3310-NTTCom

CentOS 最小インストール後、下記順序で設定を進めることでMirakurun & Chinachuの起動が完了します。

# SELinux disable

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config

# RPM Update
sudo yum -y update

# PT3 Driver install
sudo mkdir -p /usr/local/src
sudo chown root:wheel /usr/local/src
sudo chmod 775 /usr/local/src
cd /usr/local/src
sudo yum -y install git kernel-headers kernel-devel make gcc wget
git clone https://github.com/m-tsudo/pt3.git
cd pt3
make
sudo make install

sudo rpm -Uhv http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-7.noarch.rpm
sudo sed -i 's/^enabled=.*$/enabled=0/' /etc/yum.repos.d/epel.repo
sudo yum -y --enablerepo=epel install dkms
sudo ${SHELL} ./dkms.install

sudo sh -c "echo 'blacklist earth-pt1' > /etc/modprobe.d/blacklist-ptx.conf"
sudo sh -c "echo 'blacklist earth-pt3' >> /etc/modprobe.d/blacklist-ptx.conf"

# Disable pcscd
#sudo yum -y install pcsc-lite
sudo systemctl disable pcscd
#sudo systemctl start pcscd

# おまけ Sync NTP
sudo yum -y install chrony
sudo systemctl enable chronyd
sudo systemctl start chronyd

# Reboot
sudo reboot

#----------------------------------------

# docker install
curl -fsSL https://get.docker.com/ | sh
sudo usermod -aG docker `whoami`
sudo systemctl enable docker.service
sudo systemctl restart docker.service

# docker-compose install
sudo curl -o /usr/local/bin/docker-compose -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m`
sudo chmod +x /usr/local/bin/docker-compose

# Firewallを開ける
sudo firewall-cmd --add-port 40772/tcp --permanent
sudo firewall-cmd --add-port 10772/tcp --permanent
sudo firewall-cmd --add-service mdns --permanent
sudo systemctl reload firewalld

git clone https://github.com/h-mineta/docker-mirakurun-chinachu tvs
cd tvs
docker-compose up -d

ねっ、簡単でしょう?


あとがき

Dockerfile自体は先週には完成していましたが、スマートカードリーダーの利用について時間が掛かってしまいました。

当初はホストマシンでpcscdを起動した後に、pcscdのUNIX domain socketをMirakurunのコンテナで利用することを計画していたのですが、カードリーダーを認識できず停滞していました。

未だに原因不明ですが、最終的にはMirakurunコンテナ内でpcscdを動かすことで解決しました。

なお、今回からMirakurunのサービスポートは36960/tcpとなっています。

語呂合わせでミラクル感ある番号になってて良いと思っています。


Mirakurunは公式で40772/tcpになると情報を頂きましたので、変更しました。