gobot icon indicating copy to clipboard operation
gobot copied to clipboard

Use a custom Docker container for builds

Open trevrosen opened this issue 8 years ago • 6 comments

What

Run the Gobot build process inside a custom Docker container

Why

This will dramatically speed up the build process, as it will make use of Docker's container image layer cache to ensure that the system lib installation process effectively only has to happen once per active TravisCI Docker host instead of on every single build.

How

The process is outlined here:https://docs.travis-ci.com/user/docker/

Who?

I volunteer to do this if @deadprogram is down with it.

trevrosen avatar Oct 07 '17 17:10 trevrosen

This seems like an extremely good idea. Probably should have done this a while ago, or at the very least I should have done that instead of switching to the Travis build cache for the recent changes to support GoCV and OpenCV 3.3.

deadprogram avatar Oct 08 '17 08:10 deadprogram

Ok cool. I've put together a container locally and am figuring out how Travis works when you're using both a container and testing different versions of Go. Ideally it'd let me just install each supported version of Go myself in different tagged containers, b/c then I could move just about everything except for the test run and style vetting into the image, but I need to play around with it a bit.

Do you have a DockerHub account for Gobot?

trevrosen avatar Oct 08 '17 15:10 trevrosen

PS I realized after I wrote this original ticket that the lengthy build time was still a lot shorter than every single thing getting installed from scratch. OpenCV is a beast... 😄

trevrosen avatar Oct 08 '17 15:10 trevrosen

This was released as part of v1.8.0 thanks again for your awesome work, @trevrosen

deadprogram avatar Dec 21 '17 19:12 deadprogram

Yay! Happy to contribute. All for the love of robots. :-)

trevrosen avatar Dec 21 '17 19:12 trevrosen

This particular piece of the puzzle isn't 100% worked out yet so I'm going to re-open until I can put together the full container and have it leveraged in Travis.

trevrosen avatar Dec 21 '17 19:12 trevrosen