水底

ScalaとかC#とかk8sとか

Alpine Linuxでユーザやグループを追加・修正・削除する

Alpine Linux 3.5+ をお使いの方

おめでとうございます!今すぐ apk add shadow しましょう. 他のディストロ同様の useraddusermodvipw といった 様々なコマンド がお試しいただけます.

Alpine Linux ~3.4 をお使いの方

残念ながらbusyboxによる adduseraddgroupdeluserdelgroup しかありません. 強く生きましょう.

Docker Composeでビルド時に任意のイメージ名を指定する方法

公式リファレンスを見ても分かりづらいのでメモ.

Docker Compose経由でビルドされたデフォルトイメージ名は {プロジェクト名}_{サービス名} となる (デフォルトプロジェクト名はディレクトリ名だが, コマンドラインオプション -p から指定可能). 例えば以下のような構成であれば, イメージ名が hoge_fuga, コンテナ名が piyo となる.

hoge
 ┣ Dockerfile
 ┣ docker-compose.yml
 ┗ ...
# docker-compose.yml
version: '2'
services:
  fuga:
    build: .
    container_name: piyo

しばしば長ったらしいイメージ名になってしまう. そこで以下のように image を追加することでイメージ名を指定できる. imagebuild が同時に宣言されている場合は, ビルドが優先的に実行されて, image はその構成に使われる (image によるプルは発生しない). 結果としてイメージ名が nyan, コンテナ名が piyo となる. ちなみにタグの付与も image からできる. これらは全て, Compose File v2からの機能である.

# docker-compose.yml
version: '2'
services:
  fuga:
    build: .
    image: nyan
    container_name: piyo

既存環境に手を加えずにサクッとHTTPS化する (NAT配下でもok)

いい加減やらないとなーとn年思いながらも放置していた案件.

結論から言うと↓を使うだけ.

github.com

得られるもの

  • HTTPS化 (DV by let’s encrypt)
    • 無料
    • ずっと使える (let’s encryptの証明書には90日の期限があるが, 自動的に更新してくれる)
続きを読む

MP4をストリームで扱う場合の落とし穴

MP4コンテナの仕様上, ストリームとして読み込ませるとうまく扱えない. cat video.mp4 | ffmpeg -i pipe:0 ... といった形で扱うと Error while decoding stream #0:1: Invalid data found when processing input として怒られてしまう. 素直に別コンテナを使うか, ファイルとして扱う (ffmpeg -i video.mp4 ...) 必要があるようだ. -analyzeduration-probesize も試したが, ストリームの場合は意味がない模様. ちなみに出力の際 (ffmpeg ... pipe:1) はそのままストリーミング再生しても問題ないようだった.

chinachu弄ってたらめちゃ嵌った.

stackoverflow.com

Chinachu γ, Mirakurun and Encoder on Docker

タイトル通り. 過去にも似たようなことをやったり, 公式実装が公開されたり と, これらを使ってきたが, やはりどうにも使い勝手が悪い部分が多かったので作り直した (宿命).

github.com

基本的には公式実装をベースとしているが, 破壊的な変更や機能追加が多いため別リポジトリとした. 細かい内容はリポジトリを見て頂きたいが, 主な特徴だけ挙げる.

  • アプリケーション群は完全にDocker管理下でビルド済みイメージも公開済み[1][2] で docker-compose up するだけ. 設定ファイルは別途永続化されるので, 止めたい時は気軽に docker-compose down 可能
  • Mirakurun, Chinachuだけでなく自動エンコード機能もデフォルト内蔵で個別設定も可能, もちろんChinachuのストリーミング再生機能もそのまま利用可能
  • 最低限レベルの初期設定
  • 出来る限りセキュアな構成 (一部調整中 非特権コンテナ化実装済)

録画ファイルは自動的にエンコード済みのものと置き換えられるので, 例えば エンコードしたファイルをスマートフォンなどに保存したい。 · Issue #202 · Chinachu/Chinachu · GitHub とかも自動的に解決される.

🏆 快適な録画環境で優勝 🏆