Unable to start AWX via docker-compose, git repo tag 24.6.1

Hello,

I’m trying to run AWX using docker-compose.

I have cloned the Git repository, tag 24.6.1

I’m following these instructions: awx/tools/docker-compose/README.md at 24.6.1 · ansible/awx · GitHub

My environment:

  • Ubuntu 20.04.6
  • Docker 27.3.1, build ce12230

I tried starting my AWX by running make docker-compose. However this gives me an error:

make[1]: Entering directory '/opt/awx'
docker compose -f tools/docker-compose/_sources/docker-compose.yml  up  --remove-orphans
WARN[0000] /opt/awx/tools/docker-compose/_sources/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 1/1
 ✘ awx_1 Error manifest unknown                                                                                                                                                                                                          0.2s
Error response from daemon: manifest unknown
make[1]: *** [Makefile:576: docker-compose-up] Error 18
make[1]: Leaving directory '/opt/awx'
make: *** [Makefile:569: docker-compose] Error 2

I then tried with make docker-compose COMPOSE_TAG=devel. This starts the cluster and then starts looping with error:

tools_awx_1       | Traceback (most recent call last):
tools_awx_1       |   File "/var/lib/awx/venv/awx/bin/daphne", line 8, in <module>
tools_awx_1       |     sys.exit(CommandLineInterface.entrypoint())
tools_awx_1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/daphne/cli.py", line 170, in entrypoint
tools_awx_1       |     cls().run(sys.argv[1:])
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/daphne/cli.py", line 232, in run
tools_awx_1       |     application = import_by_path(args.application)
tools_awx_1       |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/daphne/utils.py", line 12, in import_by_path
tools_awx_1       |     target = importlib.import_module(module_path)
tools_awx_1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
tools_awx_1       |     return _bootstrap._gcd_import(name[level:], package, level)
tools_awx_1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
tools_awx_1       |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
tools_awx_1       |   File "/awx_devel/awx/asgi.py", line 12, in <module>
tools_awx_1       |     prepare_env()  # NOQA
tools_awx_1       |     ^^^^^^^^^^^^^
tools_awx_1       |   File "/awx_devel/awx/__init__.py", line 107, in prepare_env
tools_awx_1       |     if not settings.DEBUG:  # pragma: no cover
tools_awx_1       |            ^^^^^^^^^^^^^^
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/conf/__init__.py", line 102, in __getattr__
tools_awx_1       |     self._setup(name)
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/conf/__init__.py", line 89, in _setup
tools_awx_1       |     self._wrapped = Settings(settings_module)
tools_awx_1       |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/conf/__init__.py", line 217, in __init__
tools_awx_1       |     mod = importlib.import_module(self.SETTINGS_MODULE)
tools_awx_1       |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
tools_awx_1       |     return _bootstrap._gcd_import(name[level:], package, level)
tools_awx_1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
tools_awx_1       |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
tools_awx_1       |   File "/awx_devel/awx/settings/development.py", line 21, in <module>
tools_awx_1       |     from .defaults import *  # NOQA
tools_awx_1       |     ^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/awx_devel/awx/settings/defaults.py", line 13, in <module>
tools_awx_1       |     import ldap
tools_awx_1       | ModuleNotFoundError: No module named 'ldap'
tools_awx_1       | make[1]: *** [Makefile:254: daphne] Error 1
tools_awx_1       | make[1]: Leaving directory '/awx_devel'
tools_awx_1       | 2024-12-02 22:41:57,077 WARN exited: awx-daphne (exit status 2; not expected)

I then tried with make docker-compose COMPOSE_TAG=release_4.6. This also starts but loops with a different error:

tools_awx_1       | 2024-12-02 22:43:35,657 WARN exited: awx-wsrelay (exit status 1; not expected)
tools_awx_1       | 2024-12-02 22:43:36,659 INFO spawned: 'awx-wsrelay' with pid 514
tools_awx_1       | 2024-12-02 22:43:37,661 INFO success: awx-wsrelay entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
tools_awx_1       | 2024-12-02 22:43:37,819 ERROR    [-] ansible_base.resource_registry.apps RESOURCE_SERVER is not configured. Reverse sync will not be enabled.
tools_awx_1       | 2024-12-02 22:43:37,820 ERROR    [-] ansible_base.resource_registry.apps RESOURCE_SERVER is not configured. Reverse sync will not be enabled.
tools_awx_1       | 2024-12-02 22:43:37,820 ERROR    [-] ansible_base.resource_registry.apps RESOURCE_SERVER is not configured. Reverse sync will not be enabled.
tools_awx_1       | Traceback (most recent call last):
tools_awx_1       |   File "/usr/local/bin/awx-manage", line 18, in <module>
tools_awx_1       |     load_entry_point('awx', 'console_scripts', 'awx-manage')()
tools_awx_1       |   File "/awx_devel/awx/__init__.py", line 177, in manage
tools_awx_1       |     execute_from_command_line(sys.argv)
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
tools_awx_1       |     utility.execute()
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
tools_awx_1       |     self.fetch_command(subcommand).run_from_argv(self.argv)
tools_awx_1       |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 275, in fetch_command
tools_awx_1       |     klass = load_command_class(app_name, subcommand)
tools_awx_1       |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 48, in load_command_class
tools_awx_1       |     module = import_module("%s.management.commands.%s" % (app_name, name))
tools_awx_1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
tools_awx_1       |     return _bootstrap._gcd_import(name[level:], package, level)
tools_awx_1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
tools_awx_1       |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
tools_awx_1       |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
tools_awx_1       |   File "/awx_devel/awx/main/management/commands/run_wsrelay.py", line 20, in <module>
tools_awx_1       |     from awx.main.wsrelay import WebSocketRelayManager
tools_awx_1       |   File "/awx_devel/awx/main/wsrelay.py", line 11, in <module>
tools_awx_1       |     import aioredis
tools_awx_1       | ModuleNotFoundError: No module named 'aioredis'

How do I start AWX?

Thank you for any pointers!

More research. What am I doing wrong here?

I find it hard to believe that this has been thoroughly broken for over a year!

Various combinations of image + repo, working my way backwards:

(EDIT: anti-spam checker won’t let add more than two links, so forgive the broken links below)

  • Image 4.5, date [July 9](https ://github.com/ansible/awx/pkgs/container/awx_devel/241410308?tag=release_4.5)
  • Git 24.6.1, date [July 2](https ://github.com/ansible/awx/releases/tag/24.6.1)
  • Fail
git status
HEAD detached at 24.6.1
nothing to commit, working tree clean
docker compose -f tools/docker-compose/_sources/docker-compose.yml  down -v  --remove-orphans
(trimmed)
make docker-compose COMPOSE_TAG=release_4.5
(trimmed)
ModuleNotFoundError: No module named 'ansible_base'
  • Image 4.4, date [January 17](https ://github.com/ansible/awx/pkgs/container/awx_devel/168120124?tag=release_4.4)
  • Git 23.7.0, date [January 30](https ://github.com/ansible/awx/releases/tag/23.7.0)
  • Fail
git status
HEAD detached at 23.7.0
nothing to commit, working tree clean
docker compose -f tools/docker-compose/_sources/docker-compose.yml  down -v  --remove-orphans
(trimmed)
make docker-compose COMPOSE_TAG=release_4.4
(trimmed)
pkg_resources.DistributionNotFound: The 'awx' distribution was not found and is required by the application
  • Image 4.3, date [Nov 22, 2003](https ://github.com/ansible/awx/pkgs/container/awx_devel/150457443?tag=release_4.3)
  • Git 23.5.1, date [Dec 5, 2023](https ://github.com/ansible/awx/releases/tag/23.5.1)
  • Fail
git status
HEAD detached at 23.5.1
nothing to commit, working tree clean
docker compose -f tools/docker-compose/_sources/docker-compose.yml  down -v  --remove-orphans
(trimmed)
make docker-compose COMPOSE_TAG=release_4.3
(trimmed)
pkg_resources.DistributionNotFound: The 'awx' distribution was not found and is required by the application
  • Image 4.3, date [Nov 22, 2003](https ://github.com/ansible/awx/pkgs/container/awx_devel/150457443?tag=release_4.3)
  • Git 23.5.0, date [Nov 21, 2023](https ://github.com/ansible/awx/releases/tag/23.5.0)
  • Fail
git status
HEAD detached at 23.5.0
nothing to commit, working tree clean
docker compose -f tools/docker-compose/_sources/docker-compose.yml  down -v  --remove-orphans
(trimmed)
make docker-compose COMPOSE_TAG=release_4.3
(trimmed)
pkg_resources.DistributionNotFound: The 'awx' distribution was not found and is required by the application

Another data point, testing from a different system:

  • Ubuntu 24.04.1
  • Docker 27.3.1, build ce12230
  • Python 3.12.3

Fail with repeating loop of errors:

git status
On branch devel
Your branch is up to date with 'origin/devel'.

nothing to commit, working tree clean
git log -1
commit 055d853c5405b70fd57b2ba823b1415e1dad1e89 (HEAD -> devel, origin/devel, origin/HEAD)
Author: Peter Braun <pbraun@redhat.com>
Date:   Wed Dec 4 15:53:24 2024 +0100

    fix: reset state before evaluating named urls (#15683)
make docker-compose COMPOSE_TAG=release_4.6
(trimmed)
tools_awx_1       | 2024-12-04 16:33:03,012 WARN exited: awx-rsyslogd (exit status 1; not expected)
tools_awx_1       | awx-rsyslogd stderr | rsyslogd: could not open config file '/var/lib/awx/rsyslog/rsyslog.conf': Permission denied [v8.2102.0-106.el9 try https://www.rsyslog.com/e/2104 ]
tools_awx_1       | awx-rsyslogd stderr | rsyslogd: run failed with error -2104 (see rsyslog.h or try https://www.rsyslog.com/e/2104 to learn what that number means)
tools_awx_1       | awx-rsyslogd stderr |
tools_awx_1       | 2024-12-04 16:33:03,014 INFO spawned: 'awx-rsyslogd' with pid 1772
tools_awx_1       | rsyslogd: could not open config file '/var/lib/awx/rsyslog/rsyslog.conf': Permission denied [v8.2102.0-106.el9 try https://www.rsyslog.com/e/2104 ]
tools_awx_1       | rsyslogd: run failed with error -2104 (see rsyslog.h or try https://www.rsyslog.com/e/2104 to learn what that number means)

Using git tag 24.6.1 in place of devel gives me the same error loop.