Приложение, запущенное через контейнер Docker, не может установить соединение с oauth.vk.com и выдает ошибку aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host oauth.vk.com:443 ssl: default [None]. Однако запросы к https://example.com выполняются успешно как локально, так и через curl. Регистрация приложения пройдена корректно, и redirect_uri указан верно, так как вручную запросы выполняются без проблем.
Для исправления ошибки при обращении к oauth.vk.com из контейнера Docker можно попробовать следующие решения: 1. Проверьте настройки сети в Docker контейнере. Убедитесь, что контейнер имеет доступ к Интернету и может связываться с хостом oauth.vk.com по протоколу HTTPS. Проверьте настройки сети Docker, возможно, нужно настроить прокси или другие параметры. 2. Проверьте firewall и наличие каких-либо других сетевых ограничений, которые могут блокировать соединение с oauth.vk.com. 3. Убедитесь, что версии библиотек и зависимостей, используемых вашим приложением в контейнере, совместимы с oauth.vk.com. Попробуйте обновить версии библиотек до последних стабильных релизов. 4. Попробуйте использовать альтернативные способы для выполнения запросов к oauth.vk.com, например, использование другой библиотеки HTTP, проверка наличия ошибок в коде приложения или возможные проблемы с сертификатами SSL. Если проблема все еще не решена, рекомендуется обратиться к документации и сообществу Docker для получения дополнительной помощи и поддержки.
Добавьте <code>trust_env = True</code> при создании клиента, чтобы aiohttp пробовал использовать прокси из переменных среды. <br/> По умолчанию там false: <a href="https://docs.aiohttp.org/en/stable/client_reference.html#aiohttp.ClientSession" rel="nofollow">https://docs.aiohttp.org/en/stable/client_referenc...</a> <br/> <br/> <pre><code class="python">import asyncio
from aiohttp import ClientSession
async def main():
url = "https://example.ru/"
async with ClientSession(trust_env=True) as session:
async with session.get(url) as resp:
print(resp.status)
asyncio.run(main())</code></pre> <br/> Если это не сработает, то возможно, что домен нужно добавить в whitelist, но это уже отдельная задача.