Caching docker images
So I know that the Visual Studio 2017 have the Core and Nano containers pre-installed, but I'm wondering if there is a way to cache additional layers between builds?
This is our specific use case - we use our own base images that have a number of additional packages installed onto them (powershell tools, chocolately, IIS, etc) and then use that as a base to create our deployment container. That means every build we are pulling these intermediate layers down. If we could cache the docker layers then it would save a bit of time/bandwidth.
Having a quick look I couldn't really work out if there is actually a folder location that I could add to the app cache so that this would work. It looks like docker does some trickery on windows with regards to where it is actually storing the layers.
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by Feodor Fitsner on 04 Apr, 2017 05:00 AM
Hi Felix,
You're right, Docker file system on Windows is "black box" and pretty fragile structure. Images should be stored somewhere under
C:\ProgramData\docker
(according to this issue). You can try asking @stefscherer - he is an expert in Windows Containers.2 Posted by Felix on 04 Apr, 2017 08:23 PM
Yeah I tried adding C:\ProgramData\Docker\windowsfilter as a cache location but getting permission access errors on some of the files. I assume this is because docker has the images running in the background after the build or something.
It's all good - I wasn't really expecting it to be that easy at this point! Luckily our base images are not too huge so its not a major burden for now.
Thanks for looking into it.
3 Posted by jstafford on 23 Sep, 2017 12:07 AM
Not sure what the consensus was on the issue. Is there anything in the pipe as far as caching these images so that they don't have to be pulled on every build? This is going to add a pretty significant amount of time to the build process (particularly in dev and qa environments) which is not so great for our workflow, so we're already talking about possibly switching off of AppVeyor to something self-hosted so that the images will all be available on demand.
Is this something already in motion?
4 Posted by Ilya Finkelshte... on 23 Sep, 2017 12:52 AM
If you are thinking about switching to something self-hosted, I would recommend to go ahead and switch to ...self-hosted AppVeyor :)
Options you have are Private Build Cloud and AppVeyor Enterprise (officially releasing soon, but already have a few customer deployments).
With Private Build Cloud you have build workers in-house, with AppVeyor Enterprise also UI/Orchestration server and back-end database. If you are interested in one of those options. let us discuss it over email (team at appveyor dot com).
5 Posted by jstafford on 23 Sep, 2017 02:32 AM
ah good to know! I will keep that in mind
Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 02:20 AM.