Здравствуйте,
Иногда при выполнении обновлений через веб-интерфейс Discourse предлагает выполнить следующие команды:
cd /var/discourse
git pull
./launcher rebuild app
Так как процесс rebuild несколько раз обращается к GitHub, а в Китае, где расположен мой сервер, доступ к GitHub частично заблокирован, мне приходится настраивать HTTP/HTTPS-прокси для более стабильного доступа к GitHub. Ниже приведено сравнение доступа к YouTube без прокси и с прокси:
root@iosre:/var/discourse# wget https://youtube.com
--2021-06-10 23:55:05-- https://youtube.com/
Resolving youtube.com (youtube.com)... 66.220.152.17, 2001::3d6f:fadc
Connecting to youtube.com (youtube.com)|66.220.152.17|:443... ^C
root@iosre:/var/discourse# export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
root@iosre:/var/discourse# wget https://youtube.com
--2021-06-10 23:56:12-- https://youtube.com/
Connecting to 127.0.0.1:7890... connected.
Proxy request sent, awaiting response... 301 Moved Permanently
Location: https://www.youtube.com/ [following]
--2021-06-10 23:56:13-- https://www.youtube.com/
Connecting to 127.0.0.1:7890... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
index.html [ <=> ] 510.58K 813KB/s in 0.6s
2021-06-10 23:56:14 (813 KB/s) - ‘index.html’ saved [522830]
Однако при запуске ./launcher rebuild image скрипт входит в контейнер приложения и выполняет все операции внутри Docker, где сетевая среда отличается от настроенной на хосте с прокси. Из-за этого доступ к YouTube становится невозможным, и процесс rebuild чаще всего завершается неудачей.
root@iosre:/var/discourse# ./launcher enter app
root@iosre-app:/var/www/discourse# wget https://youtube.com
--2021-06-10 15:59:57-- https://youtube.com/
Resolving youtube.com (youtube.com)... 69.171.248.128, 2001::d238:33c1
Connecting to youtube.com (youtube.com)|69.171.248.128|:443... ^C
root@iosre-app:/var/www/discourse# export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
root@iosre-app:/var/www/discourse# wget https://youtube.com
--2021-06-10 16:00:10-- https://youtube.com/
Connecting to 127.0.0.1:7890... failed: Connection refused.
Вопрос: что можно сделать, чтобы использовать прокси хоста внутри Docker, особенно при выполнении ./launcher rebuild app?