Repository navigation
[!!!][TASK] Remove the Ansible provisioning from the images - #600
Merged
Kanti merged 1 commit intoNov 9, 2026
Merged
Conversation
docker-provision, docker-ansible-install, /opt/docker/bin/provision with provision.py and the provision.role* commands of control.sh did not work in any image: the installer asks for Python 2 packages that no longer exist (python-minimal, python-pip, py-jinja2, ...), and provision.py needs a python binary that no image has, so every call ended with exit code 127. The roles directory was empty, so there was nothing to run. Removed with them: ansible.cfg, variables.yml, variables-webdevops.yml, the empty roles directory and /opt/docker/provision/onbuild.d, which docker-run-bootstrap never ran. The two known issues become a migration note; scripts at image build go to bootstrap.d or build.d.
|
Kanti
marked this pull request as ready for review
November 9, 2026 12:35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Removes the Ansible provisioning from the images. It did not work in any image, and there was nothing left for it to run.
Until May 2017 the images were built with Ansible roles (
provision run --tag bootstrap --role webdevops-…). The switch to shell scripts inbootstrap.d,build.dandentrypoint.d(6390b47) removed the roles and keptdocker-provisionanddocker-ansible-installfor roles of one's own. Todaydocker-ansible-installasks for Python 2 packages that no longer exist (python-minimal,python-pip,py-jinja2, …), andprovision.pyis Python 2 code that needs apythonbinary no image has, so every call fails. Users get a removed command instead of a failing one; hence[!!!].Changes
provisioning/base/general, and so frombase,php/php-officialand every image built on them:docker-provision,docker-ansible-install,/opt/docker/bin/provisionandprovision.pyansible.cfg,variables.yml,variables-webdevops.yml, the emptyroles/onbuild.d/, whichdocker-run-bootstrapnever runscontrol.sh: the 20provision.role*commands, which only called/opt/docker/bin/provision. The other commands are unchanged.base::layoutno longer checksroles/,onbuild.d/anddocker-provision; the unused Ansible patterns inspec_config.rbare gone.onbuild.dand the Ansible provisioning become a note under "Migration from older images" that points tobootstrap.dandbuild.d.How it was verified
docker-provision listin the currentbase:ubuntu-22.04,base:alpine,php:8.5andphp:8.5-alpine: the installer fails on the missing packages everywhere, thenprovision.pyfails (exit code 127; inphp:8.5-alpinea Python 3SyntaxError).basebuilt completely,php:8.5and8.5-alpinebuilt up to the setup step, each with the old and the new files: only the removed files andcontrol.shdiffer.docker-provisionis not found andcontrol.sh provision.rolereports an invalid command;control.sh version.getis unchanged.base(Ubuntu, Alpine) andphp8.5 (Debian, Alpine) and thebasestructure test pass. Each serverspec run has 41 examples fewer, exactly the removed layout checks.make provisionandci/console github:generate-ciproduce no unexpected diff;build.yamlis unchanged.