- add cross-distro dev-python installer script and wire it into role + Dockerfile
- regenerate dockerignore from gitignore on make build and ignore logs/
- harden sys-pip-install break-system-packages support probe
- raise project requires-python to >=3.11
- Build matrix now includes variants: full + slim
- Tag slim images with -slim suffix and use Dockerfile target selection
- Use dedicated gha cache scopes per distro+variant
- Update release checks/retag/promote scripts to handle slim images too
https://chatgpt.com/share/69701a4e-b000-800f-be7e-162dcb93b1d2
Ensure systemd is started immediately as PID 1 in the infinito container
to avoid blocking on pkgmgr during boot. Increase compose runner timeout
to match healthcheck window and make healthcheck script executable in the
image.
This fixes containers getting stuck in "starting" state and makes CI
startup deterministic.
https://chatgpt.com/share/696683a2-9350-800f-a0cf-587d4013cb29
Add a systemd-based Docker HEALTHCHECK that verifies:
- systemd readiness
- infinito CLI availability and executability
- infinito CLI smoke test (--help)
Update CI compose runner to wait for Docker health status instead of
manual systemd polling. The runner now:
- resolves the infinito container via docker compose
- waits for healthy state
- dumps journalctl and docker logs on timeout
This removes boot race conditions and makes container readiness deterministic.
https://chatgpt.com/share/696683a2-9350-800f-a0cf-587d4013cb29
Drop VOLUME /sys/fs/cgroup from Dockerfile and rely on docker-compose
to mount cgroups explicitly for systemd-based CI containers.
Prevents creation of anonymous volumes in derived images.
https://chatgpt.com/share/695f94d9-d4a0-800f-a9eb-19e67445a0fe
- mask systemd-firstboot and first-boot-complete in Dockerfile to prevent systemd boot hang in CI/compose
- ensure machine-id is initialized during image build
- add early assertions for systemd availability and PID 1 correctness in docker role
- replace blocking docker restart with non-blocking restart + 60s wait and detailed debug dump on failure
- normalize task numbering (fuse-overlayfs, reset) for clarity
https://chatgpt.com/share/6953fbef-c508-800f-ac06-39f64f92f008
Ignore DL3008, DL3033 and DL3041 for the systemd/dbus installation step.
This image is used for multi-distro CI testing, where package version
pinning is neither portable nor desirable.
https://chatgpt.com/share/6950ffb3-1970-800f-9533-a115905ef6b7
- Install systemd and dbus in Docker image for CI service tests
- Run systemd as PID 1 with proper container conventions
- Mark container environment explicitly via ENV container=docker
- Simplify container detection to rely on explicit env flag
- Skip host-only tasks (timezone, systemctl handlers) inside containers
- Adjust docker-compose runner for privileged systemd execution
- Reduce CI parallelism to avoid OOM kills
This makes systemd-based Ansible roles reliable in Docker/CI
and avoids fragile virtualization heuristics.
https://chatgpt.com/share/6950110b-111c-800f-bbcd-83a551d5a3b8
- move distro-aware docker CLI installation into shared install-cli.sh
- use install-cli.sh only in Dockerfile (container context)
- install docker engine and compose only on hosts via Ansible
- guard engine installation with DOCKER_IN_CONTAINER
- avoid mixing Docker Inc. repo with Debian docker.io packages
https://chatgpt.com/share/694c3985-f228-800f-ac5c-b0ae41558596
- Export NIX_CONFIG in CI jobs and Makefile
- Pass NIX_CONFIG as docker build-arg
- Use NIX_CONFIG only in relevant Dockerfile RUN steps (no secret persistence)
- Forward NIX_CONFIG to test and deploy containers
https://chatgpt.com/share/6947c681-abc8-800f-ba12-de2ff3a7abad
- Match Fedora Docker CLI install only on ID=fedora
- Remove fedora from RHEL/CentOS ID_LIKE matching
- Ensure CentOS Stream 9 is handled by the RHEL/CentOS branch
- Avoid invalid docker-cli/moby-engine installs on CentOS
https://chatgpt.com/share/69472a4d-ac6c-800f-b5e1-e2fcd815ded0
- Drop explicit ca-certificates/curl installs on Fedora and RHEL/CentOS paths
- Rely on pkgmgr base images for common tooling
- Prevent curl vs curl-minimal conflicts on CentOS Stream 9
- Keep Docker CLI installation logic unchanged
https://chatgpt.com/share/69472a4d-ac6c-800f-b5e1-e2fcd815ded0
- Split dedicated deploy logic into focused modules (apps, modes, paths, proc, runner)
- Ensure all make targets run from the repository root via explicit cwd handling
- Fix "make: No rule to make target" errors caused by incorrect working directory
- Slim down __main__ to a thin CLI entrypoint
- Rework unit tests into one file per module and expand coverage
https://chatgpt.com/share/69472632-9740-800f-962c-bcb4474963d6
- Switch Dockerfile build args to PKGMGR_IMAGE_REPO/TAG
- Copy source to INFINITO_SRC_DIR and install infinito via pkgmgr
- Use entry.sh (INSTALL_LOCAL_BUILD) for build-time local override
- Update build/test scripts to new arg/env names
https://chatgpt.com/share/69455d5d-e13c-800f-8c37-fc0ece49d386
- Install Docker CLI in the Docker image (distro-aware)
- Switch deploy container runner from Docker-in-Docker to host /var/run/docker.sock
with clearer diagnostics when docker/permissions are missing
- Rewrite scripts/tests/deploy.sh to build a local infinito-<distro> image via Make
and run deployment strictly against that local tag (no pkgmgr/GHCR pulls)
https://chatgpt.com/share/694513c7-daec-800f-a9b5-c8fb25274958
- Move main.py to cli/__main__.py and expose via console script
- Switch Makefile execution to `python -m cli`
- Remove fragile Docker symlink to main.py
- Ensure infinito console script is available via venv PATH
- Update tests and documentation to reflect new CLI structure
- Improve logging location and permissions (XDG_STATE_HOME)
- Handle Ctrl+C gracefully with POSIX-compliant exit code (130)
https://chatgpt.com/share/6942f140-fb8c-800f-a13a-641ebf1c644e
Includes:
- Rewrite of test-deploy workflow to use isolated inner dockerd with privileged mode.
- Switch logging drivers to 'json-file' when IS_CONTAINER=true for compatibility with non-systemd CI runners.
- Adjust Dockerfile to install docker CLI and simplify package setup.
- Improve inventory creation and deploy steps for CI stability.
- Fully compatible with Ansible 2.20 variable handling.
Conversation reference:
https://chatgpt.com/share/6930e285-9604-800f-aad8-7a81c928548c
- Updated GitHub Actions workflow to call `infinito make ...` inside container
- Simplified Dockerfile CMD to run `infinito --help` and keep container alive
- Adjusted docker-compose.yml to use explicit image name
See: https://chatgpt.com/share/68cde606-c3f8-800f-8ac5-fc035386da87
- Replaced ENTRYPOINT/CMD with a single CMD ["infinito --help"] in Dockerfile
- Added docker-compose.yml with service 'infinito', port bindings, volumes, networks
- Added env.sample for BIND_IP, SUBNET, GATEWAY defaults
See conversation: https://chatgpt.com/share/68cda4d5-1fe0-800f-a7f7-191cb8b70d84