PR

【備忘録】Dockerビルド時のプロキシ設定

プログラミング学習

今回久しぶりにDockerでJupter aiの環境構築をしてみた際に、会社のネットワーク上からセットアップした際のプロキシサーバーの設定をDockerfileに設定する必要がありました。

プロキシサーバーあるあるかと思うので、備忘録として残しておきます。

そもそものjupyte_aiの設定は以下のサイトを参考にしました。

Jupyter AIが出た!試した!!すごい!!! - Qiita
2023/10/09更新Jupyter AIがAmazon Bedrockに対応しましたので早速試しました。Jupyte...

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

コメント

タイトルとURLをコピーしました