You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Joan Touzet <wo...@apache.org> on 2021/04/14 16:25:46 UTC

Docker / CI changes [was: Re: Warning: Incoming Docker Hub rate limits are going to negatively impact CouchDB CI workflows]

Hey, thanks for your patience on this topic.

About 7 months ago, ASF Infra told us that we were allowed to put our
containers inside of the "apache" Docker Hub organization. We just got
permission for that a few days ago. There's two main reasons this is
good: first, ASF Infra can manage write access for us, rather than
everyone coming to me personally. Second, repos in the apache
organization will not "age out" and be auto-deleted.

In the process of doing this, I moved our containers to a new naming
convention, mostly to ease round trips to Infra for support:

  apache/couchdbci-<distro>:<dist_version>-erlang-<erlang_version>

If the image is not amd64, the container arch precedes the
<dist_version> value in the tag.

Here's the full list of repos/tags today:

apache/couchdbci-centos   6-erlang-19.3.6
apache/couchdbci-centos   6-erlang-20.3.8.25-1
apache/couchdbci-centos   7-erlang-19.3.6
apache/couchdbci-centos   7-erlang-20.3.8.26-1
apache/couchdbci-centos   8-erlang-20.3.8.26-1
apache/couchdbci-debian   arm64v8-buster-erlang-20.3.8.25-1
apache/couchdbci-debian   arm64v8-buster-erlang-20.3.8.26-1
apache/couchdbci-debian   buster-erlang-20.3.8.26-1
apache/couchdbci-debian   buster-erlang-all
apache/couchdbci-debian   <none>
apache/couchdbci-debian   ppc64le-buster-erlang-20.3.8.25-1
apache/couchdbci-debian   ppc64le-stretch-base
apache/couchdbci-debian   stretch-erlang-19.3.6
apache/couchdbci-debian   stretch-erlang-20.3.8.26-1
apache/couchdbci-ubuntu   bionic-erlang-20.3.8.26-1
apache/couchdbci-ubuntu   focal-erlang-20.3.8.26-1
apache/couchdbci-ubuntu   xenial-erlang-20.3.8.26-1

Minor changes to the couchdb-ci and couchdb-pkg repos were required to
transition to the new image names.

One caveat: as Adam and I discussed many years ago (can't find the link
now), this means that any changes to these images won't automatically be
pulled in by Jenkins, because the tag didn't change (and it's no longer
'latest'). That means if you push a new image out, you *must* run this
job manually before any new Jenkins jobs will see it:

https://ci-couchdb.apache.org//job/jenkins-cm1/job/Update%20Docker%20Containers/

With these two merged PRs, 3.x now builds against these new containers,
both for PRs and for full package builds:

  https://github.com/apache/couchdb/pull/3504
  https://github.com/apache/couchdb/pull/3505

In addition, I have added more Erlang versions to the buster-erlang-all
image. Every PR now runs against this set of Erlangs:

  20.3.8.26 (binaries are still built against this)
  21.3.8.22
  22.3.4.17
  23.3.1 (the latest available at the time of image creation)

Once Nick is able to get Erlang 23 support into main, he will pull those
forward and we'll have the same on main.

And, once https://github.com/apache/couchdb/pull/3508 is merged, we
should no longer be subject to Docker Hub rate limiting in our builds.

-Joan