ファイアーウォールの中でProxyサーバー経由で、CentOS7にMastodonをインストールするときのメモ。
1.DockerデーモンのProxy設定
★/etc/systemd/system/docker.service.d/proxy.conf に
[Service]
Environment="HTTP_PROXY=http://prox-hostname:port/"
Environment="HTTPS_PROXY=http://prox-hostname:port/"
というファイルを作って、
systemctl daemon-reload
systemctl restart docker
で反映して、
docker info
で、Proxy情報が表示されることを確認する。
2.コンテナにに対してのProxy設定
Mastodonインストールディレクトリにある .env.production に、
http_proxy=http://prox-hostname:port
https_proxy=http://prox-hostname:port
を追加する。
3.apk や npm や yarn に対してのProxy設定
Mastodonインストールディレクトリにある Dockerfile に、環境変数を追加してみる。
ENV https_proxy=http://prox-hostname:port
ENV http_proxy=http://prox-hostname:port
しかし、これではapkのhttpsに対して効かない(何故??)ようなので、リポジトリのURLをhttpに変更する。
RUN echo "@edge https://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
↓
RUN echo "@edge http://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
これで、apkはOK。
npmが環境変数を見ていないようなので、proxy設定を追加する。
&& npm config set proxy http://prox-hostname:port \
&& npm config set https-proxy http://prox-hostname:port \
yarnはコマンドラインで指定する。
&& yarn --proxy http://prox-hostname:port --https-proxy http://prox-hostname:port --ignore-optional \
ちゃんと環境変数 http_proxy https_proxy を見ないツールがあるのは何故だろう?