Skip to content

[TASK] Keep the baselayout scripts in this repository instead of downloading them - #622

Merged
Kanti merged 1 commit into
webdevops:masterfrom
andersundsehr:task/integrate-baselayout
Nov 15, 2026
Merged

Kanti merged 1 commit into
webdevops:masterfrom
andersundsehr:task/integrate-baselayout

Conversation

@Kanti

@Kanti Kanti commented Nov 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

The build of webdevops/toolbox downloaded install.sh of webdevops/Docker-Image-Baselayout from its master branch, and that script downloaded the master tarball of the same repository, at every build. The scripts the images use are now part of this repository, so the build no longer depends on the other one.

Only what the images need is taken over. yum-install, yum-upgrade and the branches for Red Hat, Arch and Ubuntu before 16.04 are left out, because no image is built on one of these systems.

toolbox keeps the scripts under /baselayout, and bootstrap and the PHP images copy them from there with COPY --from=webdevops/toolbox, as before. For users of the images, only yum-install and yum-upgrade disappear from /usr/local/bin; they could not work, since no image has yum.

Changes

  • provisioning/baselayout/general/usr/local/bin: 11 scripts from commit 89e524f (2017-11-07, the last commit) of Docker-Image-Baselayout, with their permissions. Both repositories are MIT licensed by WebDevOps.
    • Unchanged: apk-install, apk-upgrade, apt-add-repository, apt-install, apt-update, apt-upgrade, docker-image-info, docker-run-bootstrap.
    • Shortened: docker-image-cleanup and generate-dockerimage-info without Red Hat and Arch. generate-locales installs locales-all on Debian and Ubuntu as before; its Red Hat part (about 470 localedef lines) and its branch for Ubuntu before 16.04 are gone.
    • Left out: yum-install, yum-upgrade.
  • provisioning/base/general/provision/service.d: cron.sh, dnsmasq.sh, postfix.sh, ssh.sh and syslog.sh no longer have a Red Hat branch that calls yum-install.
  • conf/provision.yml: new entry toolbox with baselayout/general. make generate copies the scripts into docker/toolbox/latest/conf/.
  • docker/toolbox/latest/Dockerfile.twig: the download of install.sh is removed; COPY conf/ /baselayout/ at the end, after the layer with apk, go-replace and gosu.
  • Tests: BootstrapChecks and tests/structure-test/bootstrap/test.yaml no longer expect yum-install and yum-upgrade.
  • Docs: CONTRIBUTING.md says where the scripts live, that they handle Debian, Ubuntu and Alpine, and how they get into the images. The repository map in AGENTS.md names provisioning/baselayout.

No file of this repository refers to Docker-Image-Baselayout anymore.

How it was verified

  • toolbox: built from this branch and compared /baselayout with the published webdevops/toolbox:latest. The files, permissions, owners and SHA-256 are the same, except that yum-install and yum-upgrade are missing and the three shortened scripts differ.
  • bootstrap and base: built from this branch on top of that toolbox, for Alpine and Ubuntu 22.04. The build of base runs the service install scripts.
    • /opt/docker/etc/.registry (family, distribution, version, lsb, codename) is the same as in the published images.
    • /usr/local/bin differs only by yum-install and yum-upgrade.
    • The image tests of bootstrap and base pass against these builds.
  • generate-locales:
    • Ubuntu: in the new base:ubuntu-22.04 it exits 0 and leaves 503 locales, as in the published base-app:ubuntu-22.04.
    • Alpine: it exits 0 without changing anything.
  • Debian: in the published webdevops/php:8.4 with the new scripts:
    • generate-dockerimage-info writes the same image info.
    • generate-locales keeps 502 locales.
    • docker-image-cleanup exits 0.
  • docker-image-cleanup: exits 0 in the new Ubuntu and Alpine base after a package install.
  • GrumPHP: passes (PHPStan, Rector, coding standard, PHPUnit). ci/console generate changes nothing after the commit.
  • Local workaround: the local build took the GPG key of gosu over HTTPS, because the test environment blocks hkp://keyserver.ubuntu.com:80. This pull request does not change that line.

Not verified: PHP images built from this branch (they copy the same files from toolbox), a GitHub Actions run, arm64.

Afterwards

  • Docker-Image-Baselayout can be archived. Its README still tells others to install it with wget … install.sh; that keeps working as long as the repository exists.
  • There are more Red Hat leftovers outside the baselayout scripts, all of them dead code as well. Removing them is left for another pull request:
    • the Apache and Nginx bootstrap scripts,
    • the yum cron files in 90-cleanup.sh and the test for them,
    • centos in conf/console.yml.

…loading them

The toolbox build downloaded install.sh of Docker-Image-Baselayout from
its master branch, which in turn downloaded the master tarball of that
repository, at every build. The scripts the images use (apt-install,
apk-install, docker-run-bootstrap, generate-locales, ...) are now in
provisioning/baselayout/general/usr/local/bin, taken from commit 89e524f
of that repository. conf/provision.yml copies them into the conf/ of
toolbox, and its Dockerfile copies them to /baselayout, where bootstrap
and the PHP images take them from as before. The build no longer
depends on the other repository.

Only what the images need is taken over: yum-install and yum-upgrade
are left out, and so are the branches for Red Hat, Arch and Ubuntu
before 16.04 in docker-image-cleanup, generate-dockerimage-info and
generate-locales. The service install scripts of base no longer call
yum-install. Debian, Ubuntu and Alpine work as before: the image info
of bootstrap and base is the same as in the published images.
@sonarqubecloud

Copy link
Copy Markdown

@Kanti
Kanti marked this pull request as ready for review November 15, 2026 11:49
@Kanti
Kanti merged commit 7d9caba into webdevops:master Nov 15, 2026
351 of 353 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant