RUNしたい(RUN

RUN コマンド

RUNでコマンドを実行し、コンテナの中身をカスタマイズできます。 ただしRUNごとにレイヤーが作成され、イメージサイズが増加するため、 まとめることができるコマンド群は、一行にまとめてしまうのが鉄則です。

注釈

一行にまとめる場合でも\で改行して、読みやすくできます。 2つのコマンドをまとめる場合は&&で連結します。

パッケージを追加したい(Debian/Ubuntu)

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    追加したいパッケージ名1 \
    追加したいパッケージ名2 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

Debian/Ubuntuベースのイメージを使っている場合に、パッケージを追加するコマンドです。 おまじないのように書いておくとよいと思います。

apt-get installや対話的にインストールするツールですが、 -yオプションですべてのプロンプトに自動でyesと答えるようにしています。 また--no-install-recommendsオプションで、 必要最小限のパッケージのみをインストールしています。

そして最後のrm -rfでキャッシュをクリーンアップしています。 (念のためapt-get cleanも実行しています)

Poetryしたい(virtualenv / poetry

WORKDIR /app

COPY pyproject.toml ./

RUN pip3 install -U virtualenv && virtualenv venv
RUN . venv/bin/activate
RUN pip3 install -U poetry
RUN poetry install

Poetryを使ったPython開発環境を作成するコマンドです。 virtualenvで仮想環境を作成し、そこにpoetryを追加しています。 ホストPCからコピーしたpyproject.tomlで必要はパッケージをインストールしています。