今回久しぶりにDockerでJupter aiの環境構築をしてみた際に、会社のネットワーク上からセットアップした際のプロキシサーバーの設定をDockerfileに設定する必要がありました。
プロキシサーバーあるあるかと思うので、備忘録として残しておきます。
そもそものjupyte_aiの設定は以下のサイトを参考にしました。
Dockerビルド時のプロキシ設定は、ネットワーク環境と使用するDockerfileに依存します。ネットワークがプロキシを必要とする場合や、Dockerfileがインターネット上のリソースを取得する場合(例:apt-get install
などのコマンドを使ってパッケージをインストールする場合)、プロキシ設定が必要になります。
目次
Dockerfileへのプロキシ設定の追加
プロキシ設定はDockerfileのENV
命令を使用して行います。以下はその例です:
ENV http_proxy http://proxy.example.com:8080/
ENV https_proxy http://proxy.example.com:8080/
この設定により、pip install
コマンドがインターネット上のリソースを取得する際にプロキシサーバーを経由します。
ローカルホスト上のプロキシサーバーへのアクセス
Dockerコンテナ内から見ると、ホストマシン(Dockerを実行しているマシン)は localhost
または 127.0.0.1
ではなく、特定のネットワークインターフェースを経由してアクセスする必要があります。
Docker for Linuxでは、ホストマシンにアクセスするための特別なDNS名として host.docker.internal
が利用可能です(バージョン20.10以降)。したがって、host.docker.internal
が利用可能な場合、Dockerfileは次のようになります:
code# ベースイメージを指定
FROM jupyter/minimal-notebook:lab-3.6.3
# プロキシの設定
ENV http_proxy http://host.docker.internal:8080
ENV https_proxy http://host.docker.internal:8080
# 必要なパッケージのインストール
RUN pip install --no-cache-dir \
jupyter_ai \
openai
コメント