fix(packaging): improve Docker package build compatibility#136
Merged
Conversation
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
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.
Pull Request Checklist
Please ensure your PR meets the following requirements:
make testormake docker-test)make format)Summary
This PR improves Docker/deb package build compatibility across host shells, proxy setups, Ubuntu mirrors, and Docker package failure propagation. It also prevents shared objects from being installed with axon-agent example robot configs.
Motivation
docker infocan inject unwanted proxy settings and should be controllable.build-in-docker.sh allshould return nonzero when a child distro/plugin package build fails..soartifacts.Changes
Modified Files
Makefile- Runspackage-allsequentially on Darwin and keeps parallel Docker builds on other hosts.packaging/deb/scripts/build-all-in-docker-parallel.sh- Replaces associative arrays with indexed arrays for Bash 3 compatibility and adds optional Docker-info proxy fallback control.packaging/deb/scripts/build-in-docker.sh- Adds optional Docker-info proxy fallback control and makesallpropagate sub-build failures through the final exit status.packaging/deb/scripts/build-all.sh- Avoids Bash capitalization expansion so the script works with older Bash.docker/scripts/setup-apt-mirror.sh- Adds apt retry/timeout config and derives Ubuntu ports mirrors explicitly.docker/Dockerfile.package-ros1- Uses the correct focal-backports mirror for ports architectures.docker/Dockerfile.package-standalone-focal- Uses the correct focal-backports mirror for ports architectures.apps/axon_agent/CMakeLists.txt- Excludes*.sofiles from installed example robot configs.Added Files
N/A
Deleted Files
N/A
Type of Change
Impact Analysis
Breaking Changes
None.
Backward Compatibility
AXON_PACKAGE_USE_DOCKER_INFO_PROXYdefaults toauto, preserving Docker-info proxy fallback on non-Darwin hosts while allowing it to be disabled with0/false.build-in-docker.sh all.Testing
Test Environment
builddirectory plus Docker deb package buildorigin/mainate347f0aff25b315d4ba34c6ed5ed1d194b2a6a4b2efdb2deaebb2c19d21732a8ee54f7c86280dab7Test Cases
Manual Testing Steps
Focused validation run locally:
git diff origin/main..fix/packaging-docker-agent-install --check- passed.bash -n packaging/deb/scripts/build-all-in-docker-parallel.sh packaging/deb/scripts/build-all.sh packaging/deb/scripts/build-in-docker.sh- passed.sh -n docker/scripts/setup-apt-mirror.sh- passed.cmake --build build --target axon_agent -j8- passed.env -u HTTP_PROXY -u http_proxy -u HTTPS_PROXY -u https_proxy -u ALL_PROXY -u all_proxy AXON_PACKAGE_APT_MIRROR=default AXON_PACKAGE_USE_DOCKER_INFO_PROXY=0 packaging/deb/scripts/build-in-docker.sh standalone-focal- passed.packaging/deb/output/focal:axon-agent-focal,axon-all-focal,axon-config-focal,axon-dispatcher-focal,axon-panel-focal,axon-recorder-focal,axon-system-focal, andaxon-transfer-focal.Full
./scripts/ci-all-local.sh, WS RPC client E2E, format/reuse, Zenoh, and full ROS/E2E CI matrix were not run locally for this draft PR.Test Coverage
Screenshots / Recordings
N/A
Performance Impact
package-allruns sequentially on Darwin to avoid compatibility issues; non-Darwin hosts keep the parallel package build path.Documentation
Related Issues
N/A
Additional Notes
This is intentionally opened as a draft because only focused local validation and a standalone focal package build have been run, not the full remote-equivalent CI gate required for ready-for-review.
Reviewers
N/A
Notes for Reviewers
packaging/deb/scripts/build-all-in-docker-parallel.sh.AXON_PACKAGE_USE_DOCKER_INFO_PROXYmode handling.build-in-docker.sh allfailure propagation behavior.Checklist for Reviewers