-
Notifications
You must be signed in to change notification settings - Fork 103
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
we should consider removing build tools from Helix images #805
Comments
cc @ChadNedzlek 1 GB of space is significant and would help overall with the overall storage costs associated with the images we produce. |
No objection to installing less stuff, other than to point out the obvious that there will be some teething pains in getting the new list correct and some tests will fail. To my knowledge, most of the "why the test images look like the build images" is just an artifact of folks being new to using docker and there being only that list of dependencies available back when the images were created. That said, why would you even have a |
I agree with the point @MattGal. There will be some pain so the question is if it would be worth it. (as guess) I pick
I would like to reach consensus before jumping to sweeping cleanup. |
The "ease of updates" is going to go away with some new changes, as they are going to be managed identically to the VM images Matt's talking about, but investigating failures is an interesting bit. The VM images can also be used to spin up an Azure VM, so it's still possible to use, and we could potentially work at making that easier. |
making updates more difficult is ... interesting.
|
Taking longer for "plain" helix VMs to start than docker ones is impossible. Our "docker hosts" are the plain Helix VMs, if you send work to ubuntu.1804.amd64.open@some-ubuntu-1804-dockertag, you are literally first spinning up an ubuntu 18.04 machine, doing all the same steps as a normal helix work item, then downloading all the layers of the docker image, then starting the container. There's no way this is faster than the same thing minus two steps.
Again I disagree. The docker scenario slows things down for the above reasons, VMs cost money per hour, so even though the connection to Microsoft container registry from within the data center is fast and free, the extra time of doing a docker Helix work item definitely costs more than the time not doing it.
I can try to poke more on this with the DDFUN folks. I agree that the repro machines not being available off corpnet is not an inclusive behavior for our remote coworkers.
No argument here, but you do still have to merge a pull request and wait in both cases to change test agent behavior. |
I'm talking about developer experience @MattGal. I have no visibility to the operational part. I can run container on my laptop as long as I want to and start/restart is fast. And no emails about running machines and cost saving. It is also easy to prototype and test changes. |
Ah. Yeah no disagreement there, prototyping is a Docker strong point |
I somewhat stumbled on this one while running out of space on my local machine. I noticed that most of the helix images are pretty large. For example Ubuntu 18 -> 1.5G
It seems like many of the images are pulling build tools directly or indirectly by relaying on the
prereq
base image.And in both cases they seems to be geared toward building runtime not executing tests. This may be for historical reasons.
I did little fiddling (https://github.com/dotnet/dotnet-buildtools-prereqs-docker/compare/ubu18?expand=1) and I can get the image to about 1/3
even less with restricted locale
is the ~ 1G per image saving interesting and worth of the troubles @MattGal @mthalman ?
I'm reasonably confident that the resulting image would be capable of running
runtime
tests.But I don't have really visibility to other repos and any historical reasons.
If we decouple the dependency on the base local image we may see more duplication on Dockerfile - but probably not too much.
The text was updated successfully, but these errors were encountered: