Давайте я вам расскажу, как я расчленил убил где-то 8ч дебага на docker-compose и nginx.
Есть некий абстрактный
docker-compose.yml
в котором есть нгинх и контейнер с докой, ну просто как Суэтский канал.
...
some-docs:
image: some-image:main
ports:
- 8001:8000
Конфиг нгинх не на много больше:
upstream somedocs {
server some-docs:8001;
}
server {
listen 80;
server_name _;
location /docs {
proxy_pass http://somedocs;
}
}
Но вот с таким раскладом все нехорошо, стабильно летит
[error] 23#23: *8 connect() failed (111: Connection refused) while connecting to upstream
и ему подобные.
Откинув мои потраченные часы, избавившись от network-ов докера, от доп конфигов нгинх, хттпс, убрав Cloudflare, пропинговав контейнеры между собой оказывается....надо лучше читать доку Докера (кто-то читает её лол?)
Для тех, кто хочет проверить свои скилы, можете мне свои догадки в лс написать, дальше будет ответ....
Так вот. Нарвавшись на 150 вкладку с проблемой, я нахожу хорошие слова `"ports" is only needed to expose a port
outside of Docker` (сурс
https://stackoverflow.com/a/41574448/433041)
А теперь щелчок загоревшейся лампочки - нгинх-то стучит в контейнер внутри сети докера(компоуз) ! значит 8001 ему не нужен, ему только 8000 надо на хосте some-docs.
Самое забавное, что нгинх при старте проверяет доступность хостов в upstream и они всегда были доступны(иначе нгинх не вставал), но вот то, что порт ему не подходит, я не догонял, надо было бросить все вечером и проспаться. Делайте выводы.
Хотелось бы сказать спасибо
@sysadmin_tools &
@golangdigest но они тоже не заметили проблемы))) (почему я не тыкнул других умников, я хз, берегитесь)