AWX 24.6.1 – `make docker-compose-build` Fails During dnf Install Step

Building AWX version 24.6.1 from source using Docker fails during the image build phase when running:

make docker-compose-build

The failure occurs during the dnf install step inside the container build process.

This issue is reproducible across multiple operating systems.


Tested Environments

The issue occurs on:

  • Ubuntu 24.04
  • Ubuntu 22.04
  • Ubuntu 20.04
  • CentOS Stream 10

Docker and Docker Compose plugin are installed from official repositories with latest available versions.

Docker is functioning correctly (able to pull other images successfully).


Steps to Reproduce

git clone https://github.com/ansible/awx.git
cd awx
git checkout 24.6.1
make docker-compose-build

The build begins normally but fails during package installation inside the container.


Error Output

ERROR: failed to build: 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\"     \"python3.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

Notes

  • The failure occurs specifically during the dnf execution.
  • Since this happens inside the container build stage, host OS differences should not affect the result.
  • Network connectivity is confirmed.
  • The issue is consistent across all tested distributions.

Questions

  1. Is make docker-compose-build still supported for AWX 24.6.1?
  2. Is building via Docker Compose still a supported workflow for 24.x, or is the Kubernetes Operator now the only supported deployment method?
  3. Is there updated documentation for building AWX 24.x from source?

If building from source is no longer the intended workflow for 24.x, clarification on the recommended installation approach would be appreciated.

  1. The docker-compose-build is broken because of how stale it is. In your specific error, the openssl package is pinned to a version that no longer exists in the available repos. If you unpin the version, it will install, but you will encounter more errors as you progress. Theoretically, you should be able to build the image successfully after enough trial and error.
  2. The Docker Compose deployment is not and has not been supported since at least AWX 18. Only k8s is supported, but you can deploy via the operator or helm. These methods should still work, but will point to the pre-built images for 24.6.1. If you work your way through building from source, you can point the operator/helm towards a private registry with your builds pushed to it.
  3. Any updates to documentation past 24.6.1 will reflect changes in reference to the new modular architecture overhaul, and as such the documentation is also split between the main repo, plugins repo, and any other repo related to the modular architecture. Because docker compose is not supported, there’s not likely to be any related updates.

I had an epiphany to try and use the pre-built image with docker-compose-sources followed by docker-compose-up, but that led to a whole slew of other issues that prevented it the awx container from starting.

Anyways, I’ve been lucky enough to have access to AAP at work, so I am out of the loop on any legitimate/working ways to deploy AWX currently (whether that’s 24.6.1 or devel). @kurokobo had a very good AWX on k3s project, but I don’t know if it still works.

2 Likes

It still works :slightly_smiling_face: - I’m using it in my Homelab:

2 Likes

Hello,

I followed the repository guide to deploy AWX:
However, the deployment is failing with an ImagePullBackOff error.


Environment

  • OS tested:
    • CentOS Stream 9
    • CentOS Stream 10
  • Deployment method: Following the steps exactly from the repository README

Events

Events:
  Type     Reason                  Age                   From     Message
  ----     ------                  ----                  ----     -------
  Normal   BackOff                 19m (x5410 over 20h)  kubelet  Back-off pulling image "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0"
  Warning  FailedCreatePodSandBox  13m                   kubelet  Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "77c0692e0552b38548c13c9cd66964a4ade5613934cec36a7fc5b15dc648eee5": plugin type="flannel" failed (add): loadFlannelSubnetEnv failed: open /run/flannel/subnet.env: no such file or directory
  Normal   SandboxChanged          13m (x2 over 13m)     kubelet  Pod sandbox changed, it will be killed and re-created.
  Normal   Pulled                  13m                   kubelet  Container image "quay.io/ansible/awx-operator:2.19.1" already present on machine
  Normal   Created                 13m                   kubelet  Created container awx-manager
  Normal   Started                 13m                   kubelet  Started container awx-manager
  Warning  Unhealthy               13m (x2 over 13m)     kubelet  Readiness probe failed: Get "http://10.42.0.7:6789/readyz": dial tcp 10.42.0.7:6789: connect: connection refused
  Warning  Failed                  13m (x4 over 13m)     kubelet  Error: ImagePullBackOff
  Normal   Pulling                 13m (x3 over 13m)     kubelet  Pulling image "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0"
  Warning  Failed                  13m (x3 over 13m)     kubelet  Failed to pull image "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0": rpc error: code = NotFound desc = failed to pull and unpack image "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0": failed to resolve reference "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0": gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0: not found
  Warning  Failed                  13m (x3 over 13m)     kubelet  Error: ErrImagePull
  Normal   BackOff                 3m53s (x43 over 13m)  kubelet  Back-off pulling image "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0"

Update: ImagePullBackOff was due to the deprecated image gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0.

Fix:

kubectl -n awx set image deployment/awx-operator-controller-manager \
kube-rbac-proxy=quay.io/brancz/kube-rbac-proxy:v0.15.0
kubectl delete pod -n awx -l control-plane=controller-manager

All AWX pods (web, task, operator) are now running and accessible via port-forward:

kubectl port-forward -n awx svc/awx-service 8080:80 --address 0.0.0.0
2 Likes

@Denney-tech @dbrennand @noor
It’s been quite a while since I last wrote here—hello again!
Thank you for still introducing and using my repository :slight_smile:

As you’ve mentioned, the images for kube-rbac-proxy on gcr.io have been deprecated and are no longer available.
The easiest way to maintain full compatibility is to switch to the image on quay.io provided by the original author.

Let me share a proposal for updating the kustomization.yaml for the Operator as follows. (I’ve also updated the repository—it’s been a long time since the last one!)

...
resources:
  - github.com/ansible/awx-operator/config/default?ref=2.19.1

images:
  - name: quay.io/ansible/awx-operator
    newTag: 2.19.1
  - name: gcr.io/kubebuilder/kube-rbac-proxy     👈👈👈
    newName: quay.io/brancz/kube-rbac-proxy     👈👈👈
2 Likes

Or you can follow the PR from the helm charts and use registry.k8s.io/kubebuilder/kube-rbac-proxy:v0.15.0

@Denney-tech It looks like they ultimately decided to use the image from quay.io for that PR as well :slightly_smiling_face:

1 Like

Heh, that’s what I get for not reading the thread or checking the actual file changes!