# ベースイメージ FROM debian:bullseye-slim # 環境変数の設定 ARG DOWNLOAD_PATH=/default/download/path ENV DOWNLOAD_PATH=${DOWNLOAD_PATH} # 非対話的にインストールできるようにする ENV DEBIAN_FRONTEND=noninteractive # 必要なパッケージのインストール RUN apt-get update \ && apt-get install -y \ curl \ gnupg2 \ lsb-release \ ca-certificates \ build-essential \ libssl-dev \ zlib1g-dev \ libbz2-dev \ libreadline-dev \ libsqlite3-dev \ wget \ llvm \ libncurses5-dev \ libgdbm-dev \ libnss3-dev \ liblzma-dev \ tk-dev \ libffi-dev \ libsqlite3-dev \ && apt-get clean # Python 3.11をソースからインストール RUN curl -O https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz \ && tar -xvf Python-3.11.0.tgz \ && cd Python-3.11.0 \ && ./configure --enable-optimizations \ && make -j$(nproc) \ && make altinstall \ && cd .. \ && rm -rf Python-3.11.0* # Poetryのインストール RUN curl -sSL https://install.python-poetry.org | python3.11 - # PoetryがインストールされたパスをPATHに追加 ENV PATH="/root/.local/bin:$PATH" # Poetryの設定と依存関係のインストール WORKDIR /vidyodl COPY . /vidyodl # PoetryにPython 3.11を指定 RUN poetry env use python3.11 \ && poetry config virtualenvs.create false \ && poetry install --no-interaction \ && rm -rf /root/.cache/pypoetry # debugpyをインストール RUN pip3 install debugpy # ダウンロード用のディレクトリを作成 RUN if [ -n "${DOWNLOAD_PATH}" ]; then \ mkdir -p ${DOWNLOAD_PATH} && \ mkdir -p /vidyodl/${DOWNLOAD_PATH}/audio && \ mkdir -p /vidyodl/${DOWNLOAD_PATH}/video && \ mkdir -p /vidyodl/${DOWNLOAD_PATH}/complete; \ else \ echo "DOWNLOAD_PATH is not set!"; \ fi # アプリケーションのポートを公開 EXPOSE 8000 # アプリケーションを起動 CMD ["uvicorn", "--reload", "--host=0.0.0.0", "--port=8000", "server.main:vidyodl_app"]