codekitchen / dinghy-http-proxy

the http proxy container that dinghy uses
MIT License
125 stars 43 forks source link

Network auto joining doesn't work since Docker 17.04 #30

Closed htuscher closed 7 years ago

htuscher commented 7 years ago

I just upgraded docker-machine with engine 17.04-CE and my docker client with homebrew. The dinghy_http_proxy container is not longer able to connect to my other containers, it seems that the network joining mechanism is broken.

Using

docker network connect myproj_default dinghy_http_proxy

Makes it work again.

codekitchen commented 7 years ago

Interesting that running that command manually makes it work again, since it's the same command the join-networks trigger is supposed to run. I wonder if the hook no longer getting called on each container start/stop. Do you see any errors in docker logs dinghy_http_proxy?

tierra commented 7 years ago

I can confirm seeing this issue pop up at Instructure too. The proxy logs show new containers being added and removed from nginx vhosts just fine, so it seems like those events are still working fine.

htuscher commented 7 years ago

OK, but isn't the network join event a different one. I see the containers are added to the nginx config as expected with the correct ip, but nginx just isn't able to access that ip as it isn't joined in the new bridge network created by Docker-compose.

Bryan Petty notifications@github.com schrieb am Mo., 10. Apr. 2017, 21:09:

I can confirm seeing this issue pop up at Instructure too. The proxy logs show new containers being added and removed from nginx vhosts just fine, so it seems like those events are still working fine.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/codekitchen/dinghy-http-proxy/issues/30#issuecomment-293048786, or mute the thread https://github.com/notifications/unsubscribe-auth/AE11hB_Srbg9wIy-6XUyM6lpRIQmXJ6wks5run53gaJpZM4M4rZB .

codekitchen commented 7 years ago

I just upgraded and I'm able to repro as well. I don't see anything that jumps out to me in the Changelog, so I'm adding some more logging to try and track it down.

codekitchen commented 7 years ago

Found the relevant change: https://github.com/docker/docker/pull/30673

This changes the API response format in a breaking way. It preserves the old format when specifying you want to use a previous version of the API, but the way I'm using the go docker client, it'll always use the newest version, so it breaks.

I'll just update the code to use individual network inspect calls, since that'll still work on older versions of docker too.

codekitchen commented 7 years ago

OK this is fixed now, you can force an update with docker pull codekitchen/dinghy-http-proxy:2.5 and then dinghy restart. I'll push out a new version of Dinghy later.

tierra commented 7 years ago

Thanks for tracking that down and fixing it!

htuscher commented 7 years ago

Awesome. Thanks for the quick resolution