# ベースイメージとして Python 3.11.2 を使用
FROM python:3.11.2
# 必要なパッケージをインストール
# - libasound2-dev: ALSAの開発ライブラリ、音声デバイス対応
# - usbutils: USBデバイス管理ツール

RUN apt update
RUN apt-mark hold *-kernel
RUN apt-mark hold firmware*

RUN apt update 
RUN apt -y upgrade 
RUN apt install -y \
    libasound2-dev ffmpeg
RUN apt clean # キャッシュを削除してイメージサイズを削減

# ユーザー情報を設定するための変数
ARG USERNAME=mike
ARG GROUPNAME=user
ARG UID=1000
ARG GID=1000

# 指定したUIDとGIDで新しいグループとユーザーを作成し、音声グループにも追加
RUN groupadd -g $GID $GROUPNAME && \
    useradd -m -s /bin/bash -u $UID -g $GID -G audio $USERNAME

# ユーザー情報を設定するための変数
ARG USERNAME=mike
ARG GROUPNAME=user


# 作成したユーザーを使用する
USER $USERNAME

# 作業ディレクトリを設定
WORKDIR /opt/$USERNAME/

# 作成したユーザーを使用する
USER $USERNAME

# 作業ディレクトリを設定
WORKDIR /opt/$USERNAME/

RUN pip install -U --no-cache-dir pip==24.3.1 
# 必要なPythonパッケージをインストール
RUN pip install --no-cache-dir simpleaudio==1.0.4   # オーディオ再生用パッケージ
RUN pip install --no-cache-dir wave==0.0.2          # WAVファイルの操作パッケージ
RUN pip install --no-cache-dir requests==2.32.3     # HTTPリクエスト用のライブラリ

RUN pip install --no-cache-dir llama-index==0.12.4
RUN pip install --no-cache-dir llama-index-llms-ollama==0.5.0
RUN pip install --no-cache-dir llama-index-embeddings-huggingface==0.4.0
   
RUN pip uninstall -y  python-ffmpeg 
RUN pip install --no-cache-dir  ffmpeg-python==0.2.0
