在尝试使用Docker构建coturn时遇到了困难
由于要为webRTC准备docker容器,所以尝试建立coturn时遇到了一些困难,为了备忘起见。
coturn的存储库中有DockerFile和docker-compose.yml文件…但是
在coturn的GitHub存储库中,非常周到地有一个名为docker的目录,并且根据阅读README.docker的内容,似乎只需克隆git并运行命令即可立即在docker上启动coturn。
但是实际情况并没有那么甜蜜。
首先,由于无法通过构建,我们必须设法解决这个问题。
残念ながらcoturnのイメージはDockerHub等に置かれていないので、まず自前でビルドする必要がある。
このコマンドの実行自体はReadMe通りにやればいいので簡単だが、そのまま叩くと内部の処理で落ちる。
coturn/DockerFileの修正が必要である。
更新apt中已下载的软件包版本。
由于这个 DockerFile 已经闲置了将近一年,所以所有与 libevent 相关的依赖在使用 apt-get 安装时都会失败。
需要将其替换为从 Debian 获取并安装的库文件。
尽管我对其后向兼容性有些担忧,但暂时来看,使用截至 2019/09 的最新版本没有任何问题。
明らかに要らなくて落ちるパッケージを除く
これもDockerFileが作成されたタイミングでは動いたと思われるが、
mongodb-clients辺りもapt-getに失敗する。
このmongodb系のクライアントは、coturnのユーザー保存先にmongodbを使う場合に使用されるが、
mongodbを使わない場合はなくても問題ない。
mongodbを使う場合は(あまりなさそうな気がするが)後継のライブラリをきちんと探すべきだがそれ以外は別に取り除くだけでOK。
他のDB系のクライアントも同様。
docker-composeの記述が大雑把すぎるので何とかする
ReadMeにはdocker-compose-all.ymlを使えと書いてあるが、
このallの意味はcoturnがユーザー保存先に利用する可能性のあるすべてのDBを建てるである。
どう考えても全部建てるべきケースはないので、どれか自分の使うものだけ選ぶべき。
なお、デフォルト設定の場合SQLiteを利用するので実はcoturnだけで十分である。
总结
-
- coturnのdockerはそのままでは動かないのでちょっと書き換える必要がある
- とはいえ、自分で1から書いたり手でmakeを叩くよりは遥かにマシなのでおすすめ。