Proxy経由でMastodonをインストールする

ファイアーウォールの中で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 を見ないツールがあるのは何故だろう?