Switch mailman role to docker-compose exec

We were running docker exec for a number of deployment status checks. As
we look forward to switching to docker compose over docker-compose
container names are expected to change which makes using docker exec a
bit painful in a backward and forward compatible manner. Instead we can
use docker-compose to interact with the containers using their logical
names and have it map to the correct container for us.

Change-Id: Id078ba8952acfea525d6633c7fbc88b11a9a03b8
This commit is contained in:
Clark Boylan 2024-12-16 07:58:05 -08:00
parent d6ae4516f2
commit 6b2bb4a3a9

View File

@ -223,8 +223,8 @@
# can identify a single method that is reliable this list can be trimmed.
- name: Wait for DB to be populated
command: >
docker exec mailman-compose_database_1 bash -c
'mysql -u mailman -p"$MYSQL_PASSWORD" -D mailmandb -e
/usr/local/bin/docker-compose -f /etc/mailman-compose/docker-compose.yaml exec -T database
bash -c 'mysql -u mailman -p"$MYSQL_PASSWORD" -D mailmandb -e
"SHOW TABLES LIKE \"auth_user\";"'
register: django_db_exists
delay: 1
@ -233,7 +233,8 @@
- name: Wait for DB to be populated second approach
command: >
docker exec mailman-core sh -c 'alembic -c /usr/lib/python*/site-packages/mailman/config/alembic.cfg current'
/usr/local/bin/docker-compose -f /etc/mailman-compose/docker-compose.yaml exec -T mailman-core
sh -c 'alembic -c /usr/lib/python*/site-packages/mailman/config/alembic.cfg current'
register: alembic_version
delay: 1
retries: 300
@ -241,9 +242,8 @@
- name: Wait for DB to be populated third approach
shell: >
docker exec mailman-web bash -c
'python3 manage.py showmigrations' |
grep -q '^ \[ \] [0-9]\+_.*'
/usr/local/bin/docker-compose -f /etc/mailman-compose/docker-compose.yaml exec -T mailman-web
bash -c 'python3 manage.py showmigrations' | grep -q '^ \[ \] [0-9]\+_.*'
register: django_db_migrations
delay: 1
retries: 300
@ -255,16 +255,16 @@
- name: Check if django admin user exists
command: >
docker exec mailman-compose_database_1 bash -c
'mysql -u mailman -p"$MYSQL_PASSWORD" -D mailmandb -e
/usr/local/bin/docker-compose -f /etc/mailman-compose/docker-compose.yaml exec -T database
bash -c 'mysql -u mailman -p"$MYSQL_PASSWORD" -D mailmandb -e
"SELECT COUNT(id) FROM auth_user WHERE id = 1 AND is_superuser = 1;"'
register: django_admin_exists
- name: Create django admin user
when: django_admin_exists.stdout_lines[1] == "0"
command: >
docker exec mailman-web bash -c
"DJANGO_SUPERUSER_PASSWORD={{ mailman3_admin_password }}
/usr/local/bin/docker-compose -f /etc/mailman-compose/docker-compose.yaml exec -T mailman-web
bash -c "DJANGO_SUPERUSER_PASSWORD={{ mailman3_admin_password }}
python3 manage.py createsuperuser --no-input
--username {{ mailman3_admin_user }}
--email '{{ mailman3_admin_email }}'"