Имхо запускать на докер-раннере ubuntu, а внутри нее подымать контейнер с ansible - оверкилл какой-то. Можно сразу пустить контейнер с ansible на борту и из него дернуть плейбук. Собирать каждый раз новый образ с плейбуками и ansible на борту - тоже оверкилл какой-то. Плюс в .gitlab-ci.yml заметил такой прикол
deploy to production:
...
script:
- |
...
curl -L "https://gitlab.com/anatoliykv/ansible/-/raw/master/docker-compose.yml" -o docker-compose.yml && \
...
except:
refs:
- master