-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DockerContainer.log() times out after 300 seconds / 5 minutes of streaming #901
Comments
The timeout in question is the client = aiodocker.Docker(
session=aiohttp.ClientSession(
connector=aiohttp.UnixConnector('/var/run/docker.sock'),
timeout=aiohttp.ClientTimeout(total=None, connect=30, sock_connect=30, sock_read=None)
)
) |
@toerb My guy just stepping in and dropping the solution like a chad! 12 hours in and the logs keep coming - thanks a ton! 🫶 This seems like a solid default for handling streaming logs with UnixConnectors. From what I can tell, the timeout can be adjusted per request, so setting it for the log requests makes sense. Would you mind if I opened a PR for this, giving you full credit for your solution? |
No, not at all! I am happy my comment was of help ;) |
Maybe close this issue? |
Long story short
Streaming logs for a container works fine for exactly 5 minutes before the process times out. This seems to be an HTTP timeout, probably a default value in aiohttp.
How to reproduce
Let it cook for 5 minutes.
Sidenote:
Subscribing to docker events works fine.
I also went sourcediving and found the
logs
property on theDockerContainer
class which is aDockerLog
instance.I then tried to do the same as with docker events:
But this also times out after 5 minutes.
Your environment
Python 3.12.6 (inside Docker container from
python:3.12-alpine3.19
)aiodocker==0.23.0
aiohttp==3.9.5 (clamped because of an issue with newer versions)
The text was updated successfully, but these errors were encountered: