[Starlingx-discuss] CENGN build fialures + builder docker file changes

Panech, Davlet Davlet.Panech at windriver.com
Thu Jun 18 16:55:35 UTC 2020


Hi all,

The CENGN build failed today due to (in part) problems with the Dockerfile:

  https://opendev.org/starlingx/tools/src/branch/master/Dockerfile

- It uses latest CentOS & EPEL repos to pull packages from. Even though it's based on a pinned docker image, centos:7.4.xxx, it's yum repos point to mirror.centos.org (incl updates). So the first yum command in the docker file upgrades half the system towards 7.8 or whatever

- Our build scripts require mock <= 1.4.20, but what we get is version 2.x . Older compatible versions don't exist in CentOS or EPEL repos.

- Dockerfile installs (towards the end) all repo files from centos-mirror-tools globally. This makes "yum install" essentially unusable in the docker image once its built because that set includes a bunch of incompatible repos e.g. CnetOS 7.x and 8.x both enabled.

Note that these issues affect only the execution of build scripts -- individual RPMs are built in mock roots (inside Docker on CENGN) with their own yum configuration.

Proposed changes:

- Pin Dockerfile base image to centos:7.8.2003 (up from 7.4). This should be closer to what's been happening until now with latest packages being pulled in on top of a 7.4 base system as described above.
- Replace global yum repo files with pinned URLs that point to 7.8 (using CentOS vault etc) .
- Same for EPEL repos from here: https://archives.fedoraproject.org/pub/archive/epel/7.2020-04-20/
- Install this version of mock: https://kojipkgs.fedoraproject.org/packages/mock/1.4.16/1.el7/noarch/mock-1.4.16-1.el7.noarch.rpm . This is the only build scripts - compatible mock RPM I can find.
- As a separate effort we should update build scripts to support recent mock versions. But pinning to mock 1.4.x will help with the immediate build problems

Potential problem: Docker file installs anaconda, presumably because build-iso needs that (?). But if we pin centos repos, we will be creating ISO files based on the pinned anaconda packages. Unless build-iso itself runs inside mock, not sure it this is the case.

Thoughts, comments?

I'd like to get this fixed today if possible because it's gating CENGN builds.

Thanks,
D.


More information about the Starlingx-discuss mailing list