-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize dockerfile (building and caching) #294
Merged
Merged
Conversation
This file contains 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
internet should not be required when compiling
as apt does not have a stable CLI and thus unsuitable for scripting - https://unix.stackexchange.com/a/590703/213124
and mark for readability
to avoid needless busting build cache of unrelated stages
to flush out all non-determinism given offline caching is impractical otherwise
For both docker and github actions. This should: - auto open a PR when new nvidia tags are available - as well as keep Github actions versions up to date
to robustly ignore randomly named IDE files and temp folders
Required by cmake_git_version_tracking
by using minimal build dependency set
as `radar_msgs` has a number of other msg dependencies though rosdep should eventually be used here
Co-authored-by: Mateusz Szczygielski <112629916+msz-rai@users.noreply.github.com>
This partially reverts commit 74317d5.
This reverts commit 32016bb0b0683769fefd0962ab32d67ca968ae8a.
msz-rai
force-pushed
the
feature/rework-dockerfile
branch
from
June 10, 2024 13:49
6ff4b21
to
106f8a7
Compare
msz-rai
force-pushed
the
feature/rework-dockerfile
branch
from
June 10, 2024 13:55
106f8a7
to
3984ba8
Compare
PawelLiberadzki
approved these changes
Jun 10, 2024
msz-rai
added a commit
that referenced
this pull request
Jun 11, 2024
* Introduce multistage dockerfile for build process (core only) * Update .dockerignore * Update README * Do not apt update at build time internet should not be required when compiling * Use apt-get instead of apt as apt does not have a stable CLI and thus unsuitable for scripting - https://unix.stackexchange.com/a/590703/213124 * Automate apt-get yes prompts for non-interactive scripting * Use placeholder stage for dependabot automation * Rename stages uniquely for locatability and mark for readability * Move ARG to appropriate scope to avoid needless busting build cache of unrelated stages * Disable internet for build time to flush out all non-determinism given offline caching is impractical otherwise * Edit apt config for caching and update once * Bootstrap and cache tools for install scripts * Add missing implicit dependency * Add pseudo code to install dependencies only in pepper stage * Add dependabot config For both docker and github actions. This should: - auto open a PR when new nvidia tags are available - as well as keep Github actions versions up to date * Simplify docker ignore config by inverting exclusion set to robustly ignore randomly named IDE files and temp folders * Exclude .git from .dockerignore Required by cmake_git_version_tracking * Separate dependencies script from compilation script * WIP - RGL extensions handling * Add ROS2 installation * Add build command argument * Add ros2 standalone libs and rgl executables to exporter * Fix pcl deps * Fix ros2 extension compilation * Fix CMakeLists for tests * Add ORIGIN rpath to test/tools executables * Do not change current working directory for extension install_deps scripts * Improve docs * Bring back support for taped test * Formatting * Adjust CI * Add dependencies installation info to README * Ignore Dockerfile in .dockerignore * Remove unused components from CI * Fix CI * Output libraries to lib folder * Output executables to bin folder * Simplify exporter stage by cache dancing * Formatting alpha sort * Output libraries to lib folder kind of hacky should probably simplify using better CMake * Simplify ROS install as timezone and LC_ALL setup is more for running and shouldn't be needed if only just building * Simplify ROS install remove unnecessary packages * Formatting * Use ROS_DISTRO ARG and set ENV if ever needed for later after docker build * Drop pinned package version * Formatting * Simplify ROS install by using minimal build dependency set * Alpha sort package sub lists * Simplify RUN directive via shell * Simplify RUN directive via shell * Revert to installing core as `radar_msgs` has a number of other msg dependencies though rosdep should eventually be used here * Formatting * Avoid hard coded ubuntu code name * Simplify RUN directives * Cache apt update * Format package use septate lines for version control * Update README.md Co-authored-by: Mateusz Szczygielski <112629916+msz-rai@users.noreply.github.com> * Revert "Remove Disable DNS" This partially reverts commit 74317d5. * Simplify CMake for INSTALL_DESTINATION_DIR * Revert "Revert "Remove Disable DNS"" This reverts commit 32016bb0b0683769fefd0962ab32d67ca968ae8a. * Add missing dep for ros2-standalone * Adjust CI * Fix CI: use dot instead of source * Fix CI: source sh file * Improve ROS2 check * Use new dev docker to test * Fix formatting (some packages weren't installed) * Use ROS_DISTRO instead of fixed version --------- Co-authored-by: ruffsl <roxfoxpox@gmail.com>
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.
PR: