# docker/cfg - "Build" settings for package #--------------------------------------------------------------------- [technotes] 1. "docker" is one of only a few online-build packages supported by Laclin. I.e.: This package can't be built offline, it can't be built reproducibly, and it might not build at all. Example[s] of online-build package[s] in Laclin: docker librewolf pleroma rustc uchromium This "cfg" file doesn't build the package. Instead, it provides a script that can be used to do so. This "cfg" does build some dependencies for "docker" though not the package itself. #--------------------------------------------------------------------- 2. The steps used to build the Laclin "docker" package in 2025 were as follows. They probably won't work in the future. 2.1. Proceed as "root". 2.2. Don't proceed in a container. That probably won't work unless both the host and the guest are Laclin. One consequence of that is that the procedure can't be done using a cloud copy of Laclin that is hosted in a "chroot". 2.3. IPV6 support might need to be enabled. 2.4. Pre-existing architecture-compatible copies of the "docker" bin- aries need to be pre-installed in the following directory: $PRODTREE/docker/sbin/ Specifically, the following 4 standard "docker" executable files shou- ld be present in that directory: docker-buildx docker-linux-amd64 docker-proxy dockerd Foreign executables such as from Debian 11 might work. However, for- eign executables need to have been built using a compatible version of "glibc". Additionally, to make such executables work for the purposes of this procedure, you might need to edit the script indicated further down so as to add various library directories to LD_LIBRARY_PATH. For exam- ple: . srcpkgpaths sqlite3 zlib As an alternative to foreign executables, pre-built native copies of the required executables are included in the build resource tree for this package. The pre-built copies are stored in: special/docker-sbin.tgz This procedure adds two files to the "sbin" directory regardless of preexisting files: (a) containerd-shim-runc-v2. This is a symlink to: $PRODTREE/containerd/bin/containerd-shim-runc-v2 (b) docker. This is a Perl wrapper script for "docker-linux-amd64". 2.5. Export and/or back-up "docker" containers and/or images that you'd like to preserve. 2.6. The following directory tree might need to be deleted before "docker" can be built: /var/lib/docker/ Therefore, backups are recommended. The directory tree in question might be locked in a manner that pre- vents deletion. If you decide that you need to delete it and find that you can't, move the following file to $HOME temporarily and reboot. This should prevent the "dockerd" daemon from starting and thereby make the directory delete-able. When you're done, put the file back where it was. $LACSYSTREE/setup/docker.boot 2.7. Execute: bash -e /somewhere/laclin-build-docker.sh The script indicated here is provided in the same directory tree as this "cfg" file. Specify the correct path for the script. 2.8. The script stores backup copies of the current "docker" binaries in the following tarball: /root/docker-sbin.tgz If the tarball already exists, the existing copy is overwritten. 2.9. If the script is successful, it replaces the existing files in "$PRODTREE/docker/sbin/". #--------------------------------------------------------------------- 3. The amount of disk space used by "docker" tends to grow over time. It may help to run these commands periodically: docker system prune -a -f docker volume rm $(docker volume ls -qf dangling=true) #--------------------------------------------------------------------- [buildtimes] 00.20 hours (or 012.00 minutes) - 2021 dedi box --------------------------------------------------------------------- [settings] altpkg = yes build = none defer = glibc64 configure = none proddir = none unpack = none #--------------------------------------------------------------------- [depends] containerd go runc #--------------------------------------------------------------------- [setup.boot] killany -2 -w docker sleep 1 dockerd >& /var/log/docker & #--------------------------------------------------------------------- # Original URLs. These URLs were valid at one point, but may have died # since then. If you download newer versions of tarballs [etc.], don't # delete the original versions, as you may not be able to replace # them. [urls] url_debian = tbd url_home = tbd url_lfs = tbd url_tarball = n/a # See "technotes" in "cfg" file #--------------------------------------------------------------------- [history] 180418 Added package. Started with 180418 ("git" date). 180520 Updated to 180520 180924 Updated to 180924 210329 Updated to 210329 220302 Updated to 220302 220818 Updated to 220818 250830 Updated to 250830