dockerとproxy

閲覧数: 49(1)

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年11月1日

検索ネタを連発するのはElasticsearchやElasticPresがバージョンアップした時のお  続きを読む

ElasticPress日本語設定2020年版
blank
2020年10月29日

ElasticsearchをWordpressで利用するためのプラグインであるElasticPres  続きを読む

ElasticPress 3.5
blank
2020年10月22日

Elasticsearch用のプラグインであるElasticPressがメジャーバージョンアップ(3  続きを読む

Elasticsearch 6.8.11
blank
2020年10月2日

2017年末に「2.4.6」から「5.6.5」へバージョンアップして以来の大幅バージョンアップです。  続きを読む

パンくずリスト詳細
blank
2020年5月12日

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

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

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

コメントを残す

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