New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update: [Docker] Docker関連のいくつかの修正 #23
Conversation
せっかく寄稿していただいたのに申し訳ないのですが、現時点ではこのプルリクリクエストをマージすることはできません。 将来的には Docker イメージを GitHub Packages (or Docker Hub?) に公開したりも考えてはいますが、残念ながら現時点で取り組める状態にはないのが現状です…。
…といった理由になります。 GitHub Packages に Docker イメージをアップロードするワークフロー自体は、今後のリリースの展開方法を考える上で参考にさせていただくかもしれません。 FFmpeg などのサードパーティーライブラリの ビルドスクリプト が LInux (ARM) に対応できていないため、現状ラズパイなどの ARM Linux では KonomiTV は動作しません。 サードパーティーライブラリさえどうにかなれば動かせることは以前 Qua Station でざっくり確認していますが、多くの ARM シングルボードコンピューターの貧弱な CPU 性能では CPU のみでのリアルタイムエンコードは厳しいため、FFmpeg に渡すコマンドライン引数をラズパイ4などの HW エンコード機能に対応させる必要が出てきます。
諸々すでに個人の範疇では手に負えなくなってきてしまっているので(つらい)、できるだけサポートする環境の範囲と実装範囲をミニマムに保ち、私が丁寧に整備した手順通り使っていただきたいという考えが念頭にあります。
以下は蛇足と余談です。 このプルリクエストでは docker-compose.yaml が docker-compose.sample.yaml にリネームされ、docker-compose.override.example.yaml が削除されて内容が docker-compose.yaml に統合されていますが、これは受け入れられません。 私としてはもともと NVIDIA GPU 環境も含めて一つの docker-compose.yaml に統一したかったのですが、それを行うと、今度は NVIDIA GPU 非搭載の環境で Docker コンテナが起動できなくなってしまうことがわかりました。 NVEncC を使いたい方のみ明示的に docker-compose.override.example.yaml を docker-compose.override.yaml にコピーしてもらってから、Intel CPU / iGPU のみ (QSVEncC) や AMD Radeon GPU (VCEEncC) の環境ではそのまま、 KonomiTV の docker-compose.yaml は、QSVEncC / VCEEncC をコンテナ内から動かしたり、コンテナ内から全てのファイルシステムにアクセスできるように少々特殊な構成になっています。
なお、ドキュメントはあえて version 0.5.2 のリリース後からほとんど更新していません。 本当は誰かに開発を手伝ってほしいくらいの状況ですが、私がデザイン・UX・プロダクトの品質・細かなコードフォーマットなど細部にとてもこだわりがあるため、特にまだプロダクトの全体像も固まっていない or 大部分が未だ私の脳内イメージの域を出ない現段階では、他の方からのコントリビュートはなかなか受け取りづらい状況です。作業用の分身がほしい……。 |
@tsukumijima |
個人的には動作保証なしでもDockerイメージの登録だけはしていただければdocker環境構築用のプロジェクトをサードパーティとして提供することによって少しでも本体のメンテナーの負荷を軽くできればという意図もありました。 |
現在のワークフローでは、master ブランチでコードを push した際に、毎回 Docker イメージがビルドされ ghcr.io (GitHub Container Registry) に公開されるようになっていると思います。 最新の master ブランチの開発版 (:latest) と、バージョンがタグ付けされたリリース版のみが ghcr.io に公開されるようにしていただければ、マージしてもいいかなと思います。 このプルリクエストでは、しれっと 私もあまり把握できていないのですが、Python で書かれた Docker Desktop では自動アップデートの折にしれっと v2 が有効化されていたりするみたいですが、サーバー用途で v2 を使っていい段階にあるのかどうか… あと、KonomiTV のプロジェクトでは、個人的なこだわりでコード (Vue SFC を除く) の先頭に空行を入れるようにしています。できれば合わせて頂けると助かります(こういうのも資料に書いておくべきなんだろうけど、もともと実装前のコンセプトメモレベルの代物なのでドキュメントを整備する時間と気力が…)。 |
@tsukumijima またタグの件ですが、masterプッシュ時にlatestでタグを生成するように修正したのですが、どうにも勝手にDigestタグが生成されてしまうようです。もう少し調べてみます。不可能なようならタグを一から自分で記述する方法に使用と思います。 |
予期しないイメージが生成される件修正できました。 |
docker-compose はそろそろ v2 にしてもよさそうですね。マージします。 |
@tsukumijima |
Update: [Docker] Docker関連のいくつかの修正
変更の種類
チェックリスト:
説明
簡単な内容しか記載できていませんが、とりあえずDockerイメージをGitHub packagesに登録するymlを作成しました。 お役に立てば幸いです。
動機とコンテキスト
将来的に下記の様に中級者がより簡易になおかつ早く環境構築できるようなプロジェクトを別途作成したいです。(個人的な要望です。本家に取り込んでもらいたいという意図ではありません。)
https://github.com/l3tnun/docker-mirakurun-epgstation