# ベースイメージとして Python 3.11.2 を使用
FROM python:3.11.2

# 必要なパッケージをインストール
# - libasound2-dev: ALSAの開発ライブラリ、音声デバイス対応
# - usbutils: USBデバイス管理ツール
RUN apt update && apt install -y \
    libasound2-dev=1.2.4-1.1
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

# 作成したユーザーを使用する
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リクエスト用のライブラリ

