Docker build fails on host subscribed to non-standard repos

Solution Verified - Updated -

Issue

  • An attempt to build a docker container on a host subscribed to non-standard repos (such as EUS) will fail with output similar to:
# docker build --no-cache -f /tmp/Dockerfile4 .
Sending build context to Docker daemon 81.26 MB
Step 1 : FROM registry.access.redhat.com/rhel
 ---> d01d4f01d3c4
Step 2 : USER root
 ---> Running in b92d82897304
 ---> 311cfaa7fd0c
Removing intermediate container b92d82897304
Step 3 : CMD rm -rf /etc/yum.repos.d/*.repo
 ---> Running in 35a721b674d5
 ---> 2592873eb383
Removing intermediate container 35a721b674d5
Step 4 : COPY redhat.repo /etc/yum.repos.d/
 ---> 344c04fe691f
Removing intermediate container 43749221ebda
Step 5 : COPY resolv.conf /etc/resolv.conf
 ---> 1faa4a784c09
Removing intermediate container db217e5796e4
Step 6 : CMD yum repolist
 ---> Running in 05499aad7303
 ---> 924b68f3a99f
Removing intermediate container 05499aad7303
Step 7 : CMD yum -y install libyaml
 ---> Running in 62790f45aa8e
 ---> 1c7e06f90c8a
Removing intermediate container 62790f45aa8e
Step 8 : RUN yum -y install libyaml
 ---> Running in 1d8436df21bd
Loaded plugins: ovl, product-id, search-disabled-repos, subscription-manager
https://examplerhsat.example.com/pulp/repos/example/Dev/example-RHEL-7_4/content/eus/rhel/server/7/7Server/x86_64/optional/os/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below knowledge base article

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please open a ticket with Red Hat Support.



 One of the configured repositories failed (Red Hat Enterprise Linux 7 Server - Extended Update Support - Optional 
(RPMs)),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=rhel-7-server-eus-optional-rpms ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable rhel-7-server-eus-optional-rpms
        or
            subscription-manager repos --disable=rhel-7-server-eus-optional-rpms

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=rhel-7-server-eus-optional-rpms.skip_if_unavailable=true

failure: repodata/repomd.xml from rhel-7-server-eus-optional-rpms: [Errno 256] No more mirrors to try.
https://examplerhsat.example.com/pulp/repos/example/Dev/example-RHEL-7_4/content/eus/rhel/server/7/7Server/x86_64/optional/os/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
The command '/bin/sh -c yum -y install libyaml' returned a non-zero code: 1

Environment

  • Red Hat Enterprise Linux 7
  • Red Hat Satellite 6

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content