Unable to build awx 24.6.1

Presumably 24.6.1 is stable/tested. Am I doing something wrong here?

TL;DR

Building AWX image fails because it can’t find package openssl-3.0.7.

My environment

  • Ubuntu 20.04.6
  • Docker 27.3.1, build ce12230
  • Python 3.8.10
  • ansible 2.9.6

I actually prefer to use pre-built, but that’s not working either. See Unable to start AWX via docker-compose, git repo tag 24.6.1

Details

# git remote -v
origin  https://github.com/ansible/awx.git (fetch)
origin  https://github.com/ansible/awx.git (push)
# git status
HEAD detached at 24.6.1
nothing to commit, working tree clean
# make docker-compose-build
ansible-playbook -e ansible_python_interpreter=python3 tools/ansible/dockerfile.yml \
        -e dockerfile_name=Dockerfile.dev \
        -e build_dev=True \
        -e receptor_image=quay.io/ansible/receptor:devel
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

PLAY [Render AWX Dockerfile and sources] *****************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [dockerfile : Create _build directory] **************************************************************************************************************************************************************************************************
changed: [localhost]

TASK [dockerfile : Render supervisor configs] ************************************************************************************************************************************************************************************************
changed: [localhost] => (item=supervisor_web.conf)
changed: [localhost] => (item=supervisor_task.conf)
changed: [localhost] => (item=supervisor_rsyslog.conf)

TASK [dockerfile : Render Dockerfile] ********************************************************************************************************************************************************************************************************
changed: [localhost]

PLAY RECAP ***********************************************************************************************************************************************************************************************************************************
localhost                  : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

DOCKER_BUILDKIT=1 docker build \
        -f Dockerfile.dev \
        -t ghcr.io/ansible/awx_devel:HEAD \
        --build-arg BUILDKIT_INLINE_CACHE=1 \
        --cache-from=ghcr.io/ansible/awx_devel:HEAD .
[+] Building 20.5s (13/50)                                                                                                                                                                                                     docker:default
 => [internal] load build definition from Dockerfile.dev                                                                                                                                                                                 0.0s
 => => transferring dockerfile: 7.87kB                                                                                                                                                                                                   0.0s
 => WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 8)                                                                                                                                                           0.0s
 => [internal] load metadata for quay.io/ansible/receptor:devel                                                                                                                                                                          1.2s
 => [internal] load metadata for quay.io/centos/centos:stream9                                                                                                                                                                           0.3s
 => [internal] load .dockerignore                                                                                                                                                                                                        0.0s
 => => transferring context: 56B                                                                                                                                                                                                         0.0s
 => ERROR importing cache manifest from ghcr.io/ansible/awx_devel:HEAD                                                                                                                                                                   0.2s
 => [internal] load build context                                                                                                                                                                                                        0.0s
 => => transferring context: 49.40kB                                                                                                                                                                                                     0.0s
 => FROM quay.io/ansible/receptor:devel@sha256:9fc72aa16bc037adc092b0d4c55106ac8d2bdb4ba041f4699755215c707de060                                                                                                                          3.9s
 => => resolve quay.io/ansible/receptor:devel@sha256:9fc72aa16bc037adc092b0d4c55106ac8d2bdb4ba041f4699755215c707de060                                                                                                                    0.0s
 => => sha256:9fc72aa16bc037adc092b0d4c55106ac8d2bdb4ba041f4699755215c707de060 2.36kB / 2.36kB                                                                                                                                           0.0s
 => => sha256:8a4e37085be3d6f84e607a4ada1921e199a19c23f2b1b7a35afab09407b43e75 8.16kB / 8.16kB                                                                                                                                           0.0s
 => => sha256:0ef0fe9e004229595cfdae87cd70cc6488713fa7f11d08daf73d7a41753d255c 1.63kB / 1.63kB                                                                                                                                           0.0s
 => => sha256:2bad972d1d600b470c4ba3ed1e4bf46b4d999d761d6cca4074cce948d9e824b5 16.38kB / 16.38kB                                                                                                                                         0.6s
 => => sha256:9a97152a61015ec842695c19a2f76acc848175dda0104e8fc973c42b4f4ccab4 3.89kB / 3.89kB                                                                                                                                           0.6s
 => => sha256:3efb4386bd8ea6e980a9f446d3ce41b7afaa541c2de8d328bd05a84f43e52422 226B / 226B                                                                                                                                               0.7s
 => => extracting sha256:2bad972d1d600b470c4ba3ed1e4bf46b4d999d761d6cca4074cce948d9e824b5                                                                                                                                                0.0s
 => => extracting sha256:9a97152a61015ec842695c19a2f76acc848175dda0104e8fc973c42b4f4ccab4                                                                                                                                                0.0s  => => sha256:5058c3ffac646f7ebafab3692db9a2a2587a2f8763e6ff116039fec8cb6bc6ef 29.53MB / 29.53MB                                                                                                                                         3.2s  => => sha256:3c40e88677c6f602e67208cfe63f7938a737d420875f262cc03ca66cb8819430 29.73MB / 29.73MB                                                                                                                                         2.7s
 => => extracting sha256:3efb4386bd8ea6e980a9f446d3ce41b7afaa541c2de8d328bd05a84f43e52422                                                                                                                                                0.0s
 => => extracting sha256:3c40e88677c6f602e67208cfe63f7938a737d420875f262cc03ca66cb8819430                                                                                                                                                0.9s
 => => extracting sha256:5058c3ffac646f7ebafab3692db9a2a2587a2f8763e6ff116039fec8cb6bc6ef                                                                                                                                                0.2s
 => [stage-1  3/34] ADD https://copr.fedorainfracloud.org/coprs/ansible/Rsyslog/repo/epel-9/ansible-Rsyslog-epel-9.repo /etc/yum.repos.d/ansible-Rsyslog-epel-9.repo                                                                     0.2s
 => [builder  1/10] FROM quay.io/centos/centos:stream9@sha256:fc94f4a0545cac9d6ea76e087b1482ea12b7166a35ffde69eb9708d2e17af148                                                                                                           0.0s
 => CACHED [builder  2/10] RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial                                                                                                                                                  0.0s
 => ERROR [builder  3/10] RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' &&     dnf config-manager --set-enabled crb &&     dnf -y install     iputils     gcc     gcc-c++     git-core     gettext     glibc-langp  19.0s
 => CACHED [stage-1  3/34] ADD https://copr.fedorainfracloud.org/coprs/ansible/Rsyslog/repo/epel-9/ansible-Rsyslog-epel-9.repo /etc/yum.repos.d/ansible-Rsyslog-epel-9.repo                                                              0.0s
 => CANCELED [stage-1  4/34] RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' &&     dnf config-manager --set-enabled crb &&     dnf -y install acl     git-core     git-lfs     glibc-langpack-en     krb5-workstati  18.9s
------
 > importing cache manifest from ghcr.io/ansible/awx_devel:HEAD:
------
------
 > [builder  3/10] RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' &&     dnf config-manager --set-enabled crb &&     dnf -y install     iputils     gcc     gcc-c++     git-core     gettext     glibc-langpack-en     libf
fi-devel     libtool-ltdl-devel     make     nodejs     nss     openldap-devel     openssl-3.0.7     patch     postgresql     postgresql-devel     python3.11     "python3.11-devel"     "python3.11-pip"     "python3.11-setuptools"     "pyt
hon3.11-packaging"     "python3.11-psycopg2"     swig     unzip     xmlsec1-devel     xmlsec1-openssl-devel:
0.153 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
0.208 Failed to set locale, defaulting to C.UTF-8
2.626 CentOS Stream 9 - BaseOS                        3.6 MB/s | 8.3 MB     00:02
8.753 CentOS Stream 9 - AppStream                     4.2 MB/s |  21 MB     00:04
13.38 CentOS Stream 9 - Extras packages                29 kB/s |  19 kB     00:00
13.52 Last metadata expiration check: 0:00:01 ago on Wed Dec  4 16:08:35 2024.
14.32 Dependencies resolved.
14.32 Nothing to do.
14.32 Complete!
14.40 Failed to set locale, defaulting to C.UTF-8
14.61 Last metadata expiration check: 0:00:02 ago on Wed Dec  4 16:08:35 2024.
14.69 Dependencies resolved.
14.69 ================================================================================
14.69  Package                 Architecture  Version              Repository     Size
14.69 ================================================================================
14.69 Installing:
14.69  dnf-plugins-core        noarch        4.3.0-17.el9         baseos         37 k
14.69
14.69 Transaction Summary
14.69 ================================================================================
14.69 Install  1 Package
14.69
14.69 Total download size: 37 k
14.69 Installed size: 22 k
14.69 Downloading Packages:
15.11 dnf-plugins-core-4.3.0-17.el9.noarch.rpm        220 kB/s |  37 kB     00:00
15.11 --------------------------------------------------------------------------------
15.11 Total                                            88 kB/s |  37 kB     00:00
15.12 Running transaction check
15.12 Transaction check succeeded.
15.12 Running transaction test
15.12 Transaction test succeeded.
15.12 Running transaction
15.14   Preparing        :                                                        1/1
15.14   Installing       : dnf-plugins-core-4.3.0-17.el9.noarch                   1/1
15.18   Verifying        : dnf-plugins-core-4.3.0-17.el9.noarch                   1/1
15.21
15.21 Installed:
15.21   dnf-plugins-core-4.3.0-17.el9.noarch
15.21
15.21 Complete!
15.29 Failed to set locale, defaulting to C.UTF-8
15.47 Failed to set locale, defaulting to C.UTF-8
15.86 CentOS Stream 9 - BaseOS                         23 kB/s | 6.3 kB     00:00
16.18 CentOS Stream 9 - AppStream                      24 kB/s | 6.4 kB     00:00
16.96 CentOS Stream 9 - CRB                           9.6 MB/s | 6.7 MB     00:00
18.93 No match for argument: openssl-3.0.7
18.95 Error: Unable to find a match: openssl-3.0.7
------
Dockerfile.dev:22
--------------------
  21 |     # Install build dependencies
  22 | >>> RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' && \
  23 | >>>     dnf config-manager --set-enabled crb && \
  24 | >>>     dnf -y install \
  25 | >>>     iputils \
  26 | >>>     gcc \
  27 | >>>     gcc-c++ \
  28 | >>>     git-core \
  29 | >>>     gettext \
  30 | >>>     glibc-langpack-en \
  31 | >>>     libffi-devel \
  32 | >>>     libtool-ltdl-devel \
  33 | >>>     make \
  34 | >>>     nodejs \
  35 | >>>     nss \
  36 | >>>     openldap-devel \
  37 | >>>     # pin to older openssl, see jira AAP-23449
  38 | >>>     openssl-3.0.7 \
  39 | >>>     patch \
  40 | >>>     postgresql \
  41 | >>>     postgresql-devel \
  42 | >>>     python3.11 \
  43 | >>>     "python3.11-devel" \
  44 | >>>     "python3.11-pip" \
  45 | >>>     "python3.11-setuptools" \
  46 | >>>     "python3.11-packaging" \
  47 | >>>     "python3.11-psycopg2" \
  48 | >>>     swig \
  49 | >>>     unzip \
  50 | >>>     xmlsec1-devel \
  51 | >>>     xmlsec1-openssl-devel
  52 |
--------------------
ERROR: failed to solve: process "/bin/sh -c dnf -y update && dnf install -y 'dnf-command(config-manager)' &&     dnf config-manager --set-enabled crb &&     dnf -y install     iputils     gcc     gcc-c++     git-core     gettext     glibc
-langpack-en     libffi-devel     libtool-ltdl-devel     make     nodejs     nss     openldap-devel     openssl-3.0.7     patch     postgresql     postgresql-devel     python3.11     \"python3.11-devel\"     \"python3.11-pip\"     \"pytho
n3.11-setuptools\"     \"python3.11-packaging\"     \"python3.11-psycopg2\"     swig     unzip     xmlsec1-devel     xmlsec1-openssl-devel" did not complete successfully: exit code: 1
make: *** [Makefile:619: docker-compose-build] Error 1

Testing this from a different system gives the same result. The other system details:

  • Ubuntu 24.04.1
  • Docker 27.3.1, build ce12230
  • Python 3.12.3
  • ansible [core 2.16.3]

Did you ever figure this out? It seems like a common problem that no one ever seems to answer… The only build that I’ve gotten to work is off of devel, which looks to not actually build everything that is in the release branches…

@greenmoss

The build is failing because openssl-3.0.7 is no longer available in the main Centos Stream 9 repositories. You would need to modify the dockerfile template to add rpm repos pointing to an archive mirror, or modify the install command to use openssl-3.2.1 or newer (which may lead to further build errors if there’s hard dependency on 3.0.7).

@chrisl The devel branch is being overhauled and split into plugins (plugins-docs), and other components that may exist in other repos. As a result, the main repo will appear to be missing things, but that is by design. That said, I don’t know how you’re supposed to build devel now. :man_shrugging:

I have exactly the same issue, running on Ubuntu 24LTS. Here, like with RHEL, “docker” is just an alias for “podman” (podman v4.9.3), so with exactly the same functionality. Hence the same error:
awx Error: unable to parse value provided to --cache-from: repository must contain neither a tag nor digest: ghcr.io/ansible/awx_devel:HEAD
I found that the Makefile generates and runs this offending command
docker build -f Dockerfile.dev -t ghcr.io/ansible/awx_devel:HEAD --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from=ghcr.io/ansible/awx_devel:HEAD .
When I run manually this same command but without the tags HEAD, then it proceeds very happily until it hits other problems about openssh version (can fix that) and pip versions etc…

Has this ever been resolved ? If so, with which exact O/S and tools versions?