Hi ,

Just to note I have emailed DockerHub, asking for clarification on our
account and what our benefits are.


On Thu, Oct 29, 2020 at 6:34 PM Allen Wittenauer
<a...@effectivemachines.com.invalid> wrote:

>
> > On Oct 29, 2020, at 9:21 AM, Joan Touzet <woh...@apache.org> wrote:
> >
> > (Sidebar about the script's details)
>
>         Sure.
>
> > I tried to read the shell script, but I'm not in the headspace to fully
> parse it at the moment. If I'm understanding correctly, this will still
> catch CouchDB's CI docker images if they haven't changed in a week, which
> happens often enough, negating the cache.
>
>         Correct. We actually tried something similar for a while and
> discovered that in a lot of cases, upstream packages would disappear (or
> worse, have security problems) thus making it look the image is still
> "good" when it's not.  So a rebuild weekly at least guarantees some level
> of "yup, still good" without having too much of a negative impact.
>
> > As a project, we're kind of stuck between a rock and a hard place. We
> want to force a docker pull on the base CI image if it's out of date or the
> image is corrupted. Otherwise we want to cache forever, not just for a
> week. I can probably manage the "do we need to re-pull?" bit with some
> clever CI scripting (check for the latest image hash locally, validate the
> local image, pull if either fails) but I don't understand how the script
> resolves the latter.
>
>         Most projects that use Yetus for their actual CI testing build the
> image used for the CI as part of the CI.  It is a multi-stage, multi-file
> docker build that has each run use a 'base' Dockerfile (provided by the
> project) that rarely changed and a per-run file that Yetus generates on the
> fly, with both images tagged by either git sha or branch (depending upon
> context). Due to how docker image reference counts on the layers work, this
> makes the docker images effectively used as a "rolling cache" and (beyond a
> potential weekly cache removal) full builds are rare.. thus making them
> relatively cheap (typically <1m runtime) unless the base image had a change
> far up the chain (so structure wisely).  Of course, this also tests the
> actual image of the CI build as part of the CI.  (What tests the testers?
> philosophy)   Given that Jenkins tries really hard to have job affinity,
> re-runs were still cheap after the initial one. [Ofc, now that the cache is
> getting nuked every day....]
>
>         Actually, looking at some of the ci-hadoop jobs, it looks like
> yetus is managing the cache on them.  I'm seeing individual run containers
> from days ago at least.  So that's a good sign.
>
> > Can a exemption list be passed to the script so that images matching a
> certain regex are excluded? You say the script ignores labels entirely, so
> perhaps not...
>
>         Patches accepted. ;)
>
>         FWIW, I've been testing on my local machine for unrelated reasons
> and I keep blowing away running containers I care about so I might end up
> adding it myself.  That said: the code was specifically built for CI
> systems where the expectation should be that nothing is permanent.
>
>

-- 

*Gavin McDonald*
Systems Administrator
ASF Infrastructure Team

Reply via email to