5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2024

Day 16

nvidia/cuda + Python >= 3.11 な Dockerfile を作る

Posted at

本記事は ZOZO Advent Calendar 2024 シリーズ 2 の 16 日目の記事です。

動機

nvidia/cudaをベースイメージとして使いつつ Python 3.11.x が動く環境を作りたい人生でした。

上記をベースイメージとしてデフォルトでインストールされる Python は 3.10.x なため、これを Python 3.11.x にするための試行錯誤の過程を遺しておきます。

結論

動くものはできたんですが Python 3.11.x をインストールする手続きが長い & ビルドに要する時間も長くなるため、「無理に 3.11.x にせず 3.10.x に留めておくのがよい」という判断をしています。

FROM nvidia/cuda:12.6.3-base-ubuntu22.04 as builder

ENV DEBIAN_FRONTEND=noninteractive \
    VIRTUAL_ENV=/app/.venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

# パッケージ管理には poetry を使用
ENV POETRY_VERSION=1.8.5 \
    POETRY_VIRTUALENVS_IN_PROJECT=true

RUN apt-get update && \
    apt-get install -y \
    build-essential \
    libssl-dev \
    libffi-dev \
    libbz2-dev \
    zlib1g-dev \
    libopencv-dev \
    libcurl4-openssl-dev \
    libssl-dev \
    wget

RUN wget https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tar.xz && \
    tar xJf Python-3.11.10.tar.xz && \
    cd Python-3.11.10 && \
    ./configure && make && make install

RUN python3 -m venv $VIRTUAL_ENV &&  \
    alias python=$VIRTUAL_ENV/bin/python3 &&  \
    alias pip=$VIRTUAL_ENV/bin/pip3

RUN pip install --upgrade pip

WORKDIR /app

COPY . .
RUN pip install poetry==$POETRY_VERSION && \
    poetry install


FROM nvidia/cuda:12.6.3-base-ubuntu22.04 as app

WORKDIR /app
ENV APP_HOME=/app
ENV VIRTUAL_ENV=$APP_HOME/.venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN alias python=$VIRTUAL_ENV/bin/python3

COPY --from=builder /usr/local/bin/python3 /usr/local/bin/python3
COPY --from=builder /usr/local/lib/python3.11 /usr/local/lib/python3.11
COPY --from=builder $VIRTUAL_ENV $VIRTUAL_ENV

Python をソースからビルドしているので時間がかかるのは当たり前ですね。もっとスマートにやる方法もあると思いますが、備忘録として書きました。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?