FROM node:18-bookworm

ARG RHUBARB_VERSION=1.14.0
ENV RHUBARB_HOME=/opt/rhubarb-lip-sync

# apt-get update: パッケージ一覧を更新する。
# apt-get install: ffmpeg、Chromium 実行依存、ダウンロード・展開ツールを最小構成で入れる。
# wget: 指定バージョンの Rhubarb Lip Sync を GitHub Releases から一時領域へ取得する。
# unzip: 取得したアーカイブを /opt に展開する。
# mv: Rhubarb Lip Sync を固定パスから参照できる名前へ移動する。
# chmod: Rhubarb 本体とラッパーコマンドに実行権限を付ける。
# printf: PATH から rhubarb を呼べるラッパーコマンドを作成する。
# rm: 一時ファイルと apt のキャッシュを削除してイメージサイズを抑える。
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
         ca-certificates ffmpeg fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 \
         libc6 libcairo2 libcups2 libdbus-1-3 libdrm2 libexpat1 libfontconfig1 libgbm1 \
         libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libx11-6 libx11-xcb1 \
         libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 \
         libxrender1 unzip wget xdg-utils && \
    wget -q -O /tmp/rhubarb.zip \
         "https://github.com/DanielSWolf/rhubarb-lip-sync/releases/download/v${RHUBARB_VERSION}/Rhubarb-Lip-Sync-${RHUBARB_VERSION}-Linux.zip" && \
    unzip -q /tmp/rhubarb.zip -d /opt && \
    mv "/opt/Rhubarb-Lip-Sync-${RHUBARB_VERSION}-Linux" "${RHUBARB_HOME}" && \
    chmod +x "${RHUBARB_HOME}/rhubarb" && \
    printf '#!/bin/sh\nexec "%s/rhubarb" "$@"\n' "${RHUBARB_HOME}" > /usr/local/bin/rhubarb && \
    chmod +x /usr/local/bin/rhubarb && \
    rm -f /tmp/rhubarb.zip && \
    rm -rf /var/lib/apt/lists/*
