dockerとproxy

閲覧数: 44(0)

dockerやdocker-composeをプロキシ環境下で使うのに苦労したので忘れないようにメモしておきます。テスト環境をクライアントPC上のVMで構築した際、社内プロキシがドメイン参加前提のWindowsベースで、回避のためにローカルのプロキシ(ntlmaps)を立てている時、dockerではローカルのプロキシと名前解決の相性が悪くdockerは通るもののdocker-composeがbuildで失敗する(インターネットにアクセス出来ない)ことが続いたので、なんでだろうと調べたところdockerはローカルでは名前解決しない?ことがわかったのでローカルのプロキシをあきらめ、適当なサーバー上にプロキシ(ntlmaps)を立てて対応することに。ntlmapsはNTLM認証迂回のためのプロキシです。

まずはdockerのプロキシ対応から。これは単純。daemon-reloadとrestartを忘れずに。プロキシ経由していることを確認するために適当なイメージをpullしてみると良いと思います。IPアドレスは自身の環境に合わせて要修正です。

[Service]
Environment='http_proxy=http://172.16.2.60:5865'
Environment='https_proxy=http://172.16.2.60:5865'
Environment='no_proxy=192.168.38.131'

WordPress用のPHP-FPM環境を構築」する際に、社内からインターネットに出られないことでエラーになる部分をプロキシで回避するために追加したのは以下の通り。6-7行目が該当部分です。

FROM php:7.3.6-fpm
# Replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
ENV TZ='Asia/Tokyo'

COPY apt.conf /etc/apt/apt.conf
RUN pear config-set http_proxy http://172.16.2.60:5865

コンテナ内にコピーするapt.confの中身は以下の通り。IPアドレスは自身の環境に合わせて要修正です。

Acquire::http::proxy "http://172.16.2.60:5865/";
Acquire::https::proxy "http://172.16.2.60:5865/";

上記の設定があれば、以下のコンテナ構築は成功します。

# make sure apt is up to date
RUN apt-get update --fix-missing
RUN apt-get install -y curl
RUN apt-get install -y build-essential libssl-dev zlib1g-dev libpng-dev libjpeg-dev libfreetype6-dev

RUN apt-get update && apt-get install libmagickwand-dev -y --no-install-recommends \
  && pecl install imagick-3.4.3 \
  && docker-php-ext-enable imagick

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd

RUN docker-php-ext-install pdo pdo_mysql mysqli bcmath exif

COPY php.ini /usr/local/etc/php/php.ini

WordPressのプロキシ設定はwp-config.phpに以下の設定を追加することで対応しますが、プロキシを経由しないアクセスをきちんと設定していなかったのでローカルにあるElasticsearchサーバーに接続はするもののインデックスが作成出来ないという事象に遭遇してしまいました。お忘れなく。最後の行がバイパス設定でローカルVM上のアドレスを記載しています。Elasticsearchがリモートの時は不要です。IPアドレスは自身の環境に合わせて要修正です。

define('WP_PROXY_HOST', '172.16.2.60');
define('WP_PROXY_PORT', '5865');
define('WP_USEPROXY', 'TRUE');
define('WP_PROXY_BYPASS_HOSTS','192.168.38.131');

1週間ぐらい悩みましたが何とか解決出来ました。コンテナ内からプロキシを使いたいのではなくて、コンテナ構築のために必要なプロキシ設定です。コンテナが恒常的にプロキシを必要とする場合はENV等の環境設定が必要です。

カテゴリーIT閑話, 公開タグ, ,
関連記事
パンくずリスト詳細
2020年5月12日

テーマの「マイナーチェンジ」に伴って「パンくずリスト」の仕様を若干変更しました。一つ前のテーマではパ  続きを読む

カテゴリーを制限する
blank
2020年5月11日

過去に何度も書いた「カテゴリー制限」の話、元はと言えば初期に書かれた「非公開」の記事が原因です。トッ  続きを読む

マイナーチェンジ
blank
2020年3月23日

かれこれ一年近くほったらかしだったので、気合をいれて「テーマ変更」と思っていたのですが、、、いろいろ  続きを読む

6月の検索ワードまとめ
blank
2019年6月30日

6月の検索ワードのまとめです。 意外なところで「zabbixダウングレード」が複数回検索され、単独の  続きを読む

アクセシビリティ対策
blank
2019年6月23日

テーマカスタマイズの一環で、トップページに一覧表示されている「写真を左右交互に表示する」ようにした際  続きを読む

関連記事の大原則
blank
2019年6月16日

ググったりしてあるページにたどり着いた閲覧者に対して、それに関連する記事を提示して少しでもサイトの滞  続きを読む

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください