Closed mblaschke closed 7 years ago
Tests are still failing randomly on Docker 1.11.0 but i think it's a Docker issue. On 1.10.3 it's now working.
The issue because of fork/exec /proc/self/exe: resource temporarily unavailable
was the process limit of systemd which can be fixed (temporary) with eg systemctl set-property docker.service TasksMax=8192
.
@mblaschke are you still getting failures? I was working on 1.12 support and found it to be failing as soon as I ran rake
. Was going to look into fixing failures but wondering if you made any headway on any of this. Thanks.
@tlunter are their known failures in the test suite right now?
@hekaldama all tests should run correctly under the latest version of docker.
@mblaschke curious why you're running the tests in a parallel manner? Many of them check the value before and after a method is run and would definitely not work when run in parallel.
@tlunter I am currently fixing one now that does not run on docker 1.12. https://github.com/swipely/docker-api/blob/master/spec/docker/image_spec.rb#L263-L265 now returns Docker::Error::ClientError
. I am also working on the 1.12 interface with tests. Will send PR soon.
@tlunter Testing ~180 in serial mode takes too long so we're running severspec parallel in seperated processes.
However this seems to be a docker daemon issue
Seems to be fixed in docker (upstream)
I'm running into this issue now with the latest version of Docker for Mac and 17.06.0-ce on Ubuntu. Did this end up being a problem with Docker, docker-api, or some lower level library?
Any guidance would be a huge help as I'm trying to build out a pipeline of Docker image builds and this is a huge block in not being able to implement what we thought we'd be able to.
Two and a half years after this issue was closed, I'm still running into it with Docker version 19.03.1, build 74b1e89 on macOS 10.14.6. Given the immediate response to @jadametz's comment above, I'm beginning to think that there's really no interest in supporting a Docker API client in Ruby that supports building images.
[16] pry(main)> build_output = ''
=> ""
[17] pry(main)> proc = Proc.new { |chunk| build_output << chunk; }
=> #<Proc:0x00007fba80a2dbf8@(pry):27>
[18] pry(main)> img = Docker::Image.build_from_dir('.', options) { |chunk| proc.call(chunk) }
Excon::Error::Socket: Broken pipe (Errno::EPIPE)
from <internal:prelude>:131:in `__write_nonblock'
Caused by Errno::EPIPE: Broken pipe
from <internal:prelude>:131:in `__write_nonblock'
[19] pry(main)>
@jdickey tone in your comment seems harsh. The original issue was closed with this being an issue with the daemon. We use and other companies use this client to build images without issue all the time. Please let me know if you have constructive information to add to the gem that can fix this issue.
@tlunter Apologies for the tone; that day was a long and frustrating fortnight. Will gather more information and comment again another time.
Thanks for the reply.
I'm not sure since when or why our Dockerfile tests are failing (eg.
webdevops/apache
. It happens since updating to Docker 1.11.0 but also going back to Docker 1.10.3 doesn't help.When I'm running tests in serial mode they are finishing without issues. In parallel mode (with 1 sec delay) the rspec tests are failing. Each testsuite for each container is running as separate process so it's not a threading issue.
When I'm delaying creating of images eg. for 20 or 30 seconds (10 are not enough) the tests are running without any issues.
Any ideas?
docker ps
:Example test output
with 10 sec delay:
daemon log: