vidyodl / Dockerfile
soiz1's picture
Update Dockerfile
be8efa2 verified
# ベースイメージ
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"]