From 509ff4e9386dc7bbd30a29de36e7f5934f12d985 Mon Sep 17 00:00:00 2001 From: Scott K Logan Date: Thu, 21 Mar 2024 16:18:51 -0500 Subject: [PATCH] Set PODMAN_USERNS=keep-id when invoking 'docker run' The way Dockerfiles are structured in ros_buildfarm, we're dependent on the UID staying the same when the container is run. Setting PODMAN_USERNS=keep-id when the `docker` command is backed by Podman will in effect preserve the behavior of Docker we're relying on here. When the `docker` command is backed by Docker, this shouldn't change the behavior at all. --- .github/actions/release_reconfigure/action.yaml | 2 ++ .github/actions/sync_criteria_check/action.yaml | 2 ++ .github/actions/trigger/action.yaml | 2 ++ doc/index.rst | 7 +++++++ ros_buildfarm/templates/ci/ci_job.xml.em | 16 ++++++++++++++++ .../templates/ci/ci_reconfigure-jobs_job.xml.em | 2 ++ ros_buildfarm/templates/devel/devel_job.xml.em | 6 ++++++ .../devel/devel_reconfigure-jobs_job.xml.em | 2 ++ .../doc/doc_independent_docker_job.xml.em | 2 ++ .../templates/doc/doc_independent_job.xml.em | 2 ++ .../templates/doc/doc_metadata_job.xml.em | 2 ++ .../doc/doc_reconfigure-jobs_job.xml.em | 2 ++ ros_buildfarm/templates/doc/rosdoc2_job.xml.em | 4 ++++ .../templates/misc/rosdistro_cache_job.xml.em | 2 ++ .../templates/release/deb/binarypkg_job.xml.em | 6 ++++++ .../templates/release/deb/sourcepkg_job.xml.em | 2 ++ .../release/release_reconfigure-jobs_job.xml.em | 2 ++ .../release/release_trigger-jobs_job.xml.em | 2 ++ .../rpm/sync_packages_to_testing_job.xml.em | 2 ++ .../status/blocked_releases_page_job.xml.em | 2 ++ .../blocked_source_entries_page_job.xml.em | 2 ++ .../status/release_compare_page_job.xml.em | 2 ++ .../status/release_status_page_job.xml.em | 2 ++ 23 files changed, 75 insertions(+) diff --git a/.github/actions/release_reconfigure/action.yaml b/.github/actions/release_reconfigure/action.yaml index d84760284..c1485aed7 100644 --- a/.github/actions/release_reconfigure/action.yaml +++ b/.github/actions/release_reconfigure/action.yaml @@ -21,6 +21,8 @@ runs: using: composite steps: - id: ros_buildfarm_job + env: + PODMAN_USERNS: keep-id shell: bash run: | echo ::group::Generate job diff --git a/.github/actions/sync_criteria_check/action.yaml b/.github/actions/sync_criteria_check/action.yaml index 2c443f8fc..f6486360b 100644 --- a/.github/actions/sync_criteria_check/action.yaml +++ b/.github/actions/sync_criteria_check/action.yaml @@ -33,6 +33,8 @@ runs: using: composite steps: - id: ros_buildfarm_job + env: + PODMAN_USERNS: keep-id shell: bash run: | echo ::group::Generate job diff --git a/.github/actions/trigger/action.yaml b/.github/actions/trigger/action.yaml index 5e6f37153..063d96fe4 100644 --- a/.github/actions/trigger/action.yaml +++ b/.github/actions/trigger/action.yaml @@ -18,6 +18,8 @@ runs: using: composite steps: - id: ros_buildfarm_job + env: + PODMAN_USERNS: keep-id shell: bash run: | echo ::group::Generate job diff --git a/doc/index.rst b/doc/index.rst index 1018ddb83..dccf40d3c 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -120,9 +120,16 @@ Another job type can be used locally which is not offered on the build farm. * `prerelease jobs `_ build and test ROS repositories as well as build and test released ROS packages depending on them + Optimization ------------ If you are going to be running one or more jobs on any machine we recommend `using squid-in-a-can `_ to cache downloads. It can greatly speed up download times and saves a lot of bandwidth. It's used by all our developers as well as on all the build machines. + + +Software required to execute jobs +--------------------------------- +Beyond the administrative requirements for generating jobs, the only noteworth software for executing jobs whether locally or via Jenkins is a container engine compatible with the Docker client CLI. +Currently, the only engines tested with ``ros_buildfarm`` are the Docker CE or rootless Podman. diff --git a/ros_buildfarm/templates/ci/ci_job.xml.em b/ros_buildfarm/templates/ci/ci_job.xml.em index ae06ba7b3..4bc993da9 100644 --- a/ros_buildfarm/templates/ci/ci_job.xml.em +++ b/ros_buildfarm/templates/ci/ci_job.xml.em @@ -230,6 +230,8 @@ parameters = [ 'mkdir -p $WORKSPACE/docker_create_workspace', 'mkdir -p $WORKSPACE/docker_build_and_install', 'mkdir -p $WORKSPACE/docker_build_and_test', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generating_dockers/docker.cid' + @@ -271,6 +273,8 @@ parameters = [ ] + [ 'mkdir -p %s' % (dir) for dir in underlay_source_paths ] + [ + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_create_workspace/docker.cid' + @@ -316,6 +320,8 @@ parameters = [ ] + ([ 'echo "# BEGIN SECTION: ccache stats (before)"', 'mkdir -p $HOME/.ccache', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_and_install/docker_ccache_before.cid' + @@ -331,6 +337,8 @@ parameters = [ 'export UNDERLAY%d_JOB_SPACE=$WORKSPACE/underlay%d/ros%d-linux' % (i + 1, i + 1, local_ros_version) for i, local_ros_version in zip(range(len(underlay_source_jobs)), [ros_version] * len(underlay_source_jobs)) ] + [ + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_and_install/docker.cid' + @@ -348,6 +356,8 @@ parameters = [ ] + ([ '', 'echo "# BEGIN SECTION: ccache stats (after)"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_and_install/docker_ccache_after.cid' + @@ -394,6 +404,8 @@ parameters = [ ] + ([ 'echo "# BEGIN SECTION: ccache stats (before)"', 'mkdir -p $HOME/.ccache', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_and_test/docker_ccache_before.cid' + @@ -411,6 +423,8 @@ parameters = [ ] + [ 'rm -fr $WORKSPACE/ws/test_results', 'mkdir -p $WORKSPACE/ws/test_results', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_and_test/docker.cid' + @@ -428,6 +442,8 @@ parameters = [ ] + ([ '', 'echo "# BEGIN SECTION: ccache stats (after)"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_and_test/docker_ccache_after.cid' + diff --git a/ros_buildfarm/templates/ci/ci_reconfigure-jobs_job.xml.em b/ros_buildfarm/templates/ci/ci_reconfigure-jobs_job.xml.em index 3db683890..c995daede 100644 --- a/ros_buildfarm/templates/ci/ci_reconfigure-jobs_job.xml.em +++ b/ros_buildfarm/templates/ci/ci_reconfigure-jobs_job.xml.em @@ -111,6 +111,8 @@ if (repository_names) { 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - reconfigure jobs for %s"' % (ci_build_name), + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', '# -e=GIT_BRANCH= is required since Jenkins leaves the wc in detached state', 'docker run' + ' --rm ' + diff --git a/ros_buildfarm/templates/devel/devel_job.xml.em b/ros_buildfarm/templates/devel/devel_job.xml.em index d0f322b63..0dcf3b463 100644 --- a/ros_buildfarm/templates/devel/devel_job.xml.em +++ b/ros_buildfarm/templates/devel/devel_job.xml.em @@ -167,6 +167,8 @@ if pull_request: 'rm -fr $WORKSPACE/docker_build_and_test', 'mkdir -p $WORKSPACE/docker_build_and_install', 'mkdir -p $WORKSPACE/docker_build_and_test', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generating_dockers/docker.cid' + @@ -205,6 +207,8 @@ if pull_request: 'if [ ! -d "$HOME/.ccache" ]; then mkdir $HOME/.ccache; fi', ] if shared_ccache else []) + [ ('if [ ! -c /dev/nvidia[0-9] ]; then echo "--require-gpu-support is enabled but can not detect nvidia support installed" && exit 1; fi' if require_gpu_support else ''), + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + (' --env=DISPLAY=:0.0 --env=QT_X11_NO_MITSHM=1 --volume=/tmp/.X11-unix:/tmp/.X11-unix:rw --gpus all' if require_gpu_support else '') + ' --rm ' + @@ -238,6 +242,8 @@ if pull_request: ] + ([ 'if [ ! -d "$HOME/.ccache" ]; then mkdir $HOME/.ccache; fi', ] if shared_ccache else []) + [ + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + (' --env=DISPLAY=:0.0 --env=QT_X11_NO_MITSHM=1 --volume=/tmp/.X11-unix:/tmp/.X11-unix:rw --gpus all' if require_gpu_support else '') + ' --rm ' + diff --git a/ros_buildfarm/templates/devel/devel_reconfigure-jobs_job.xml.em b/ros_buildfarm/templates/devel/devel_reconfigure-jobs_job.xml.em index 1504d5b46..05f793437 100644 --- a/ros_buildfarm/templates/devel/devel_reconfigure-jobs_job.xml.em +++ b/ros_buildfarm/templates/devel/devel_reconfigure-jobs_job.xml.em @@ -113,6 +113,8 @@ if (repository_names) { 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - reconfigure jobs"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', '# -e=GIT_BRANCH= is required since Jenkins leaves the wc in detached state', 'docker run' + ' --rm ' + diff --git a/ros_buildfarm/templates/doc/doc_independent_docker_job.xml.em b/ros_buildfarm/templates/doc/doc_independent_docker_job.xml.em index f034999e8..05863f561 100644 --- a/ros_buildfarm/templates/doc/doc_independent_docker_job.xml.em +++ b/ros_buildfarm/templates/doc/doc_independent_docker_job.xml.em @@ -120,6 +120,8 @@ else: 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Docker - %s"' % doc_repository_name, + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm' + ' --net=host' + diff --git a/ros_buildfarm/templates/doc/doc_independent_job.xml.em b/ros_buildfarm/templates/doc/doc_independent_job.xml.em index 8c6b7dbd5..bfb17d7c4 100644 --- a/ros_buildfarm/templates/doc/doc_independent_job.xml.em +++ b/ros_buildfarm/templates/doc/doc_independent_job.xml.em @@ -120,6 +120,8 @@ else: 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - doc independent"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_doc_independent/docker.cid' + diff --git a/ros_buildfarm/templates/doc/doc_metadata_job.xml.em b/ros_buildfarm/templates/doc/doc_metadata_job.xml.em index 2ebec62bc..6485c469a 100644 --- a/ros_buildfarm/templates/doc/doc_metadata_job.xml.em +++ b/ros_buildfarm/templates/doc/doc_metadata_job.xml.em @@ -95,6 +95,8 @@ 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - doc metadata"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_doc_metadata/docker.cid' + diff --git a/ros_buildfarm/templates/doc/doc_reconfigure-jobs_job.xml.em b/ros_buildfarm/templates/doc/doc_reconfigure-jobs_job.xml.em index 436177188..68b4e9c36 100644 --- a/ros_buildfarm/templates/doc/doc_reconfigure-jobs_job.xml.em +++ b/ros_buildfarm/templates/doc/doc_reconfigure-jobs_job.xml.em @@ -113,6 +113,8 @@ if (repository_names) { 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - reconfigure jobs"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', '# -e=GIT_BRANCH= is required since Jenkins leaves the wc in detached state', 'docker run' + ' --rm ' + diff --git a/ros_buildfarm/templates/doc/rosdoc2_job.xml.em b/ros_buildfarm/templates/doc/rosdoc2_job.xml.em index 87ccede9b..4105c162f 100644 --- a/ros_buildfarm/templates/doc/rosdoc2_job.xml.em +++ b/ros_buildfarm/templates/doc/rosdoc2_job.xml.em @@ -141,6 +141,8 @@ else: 'echo "# BEGIN SECTION: Run Dockerfile - generating doc task"', 'rm -fr $WORKSPACE/docker_doc', 'mkdir -p $WORKSPACE/docker_doc', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generating_docker/docker.cid' + @@ -174,6 +176,8 @@ else: 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - doc"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_doc/docker.cid' + diff --git a/ros_buildfarm/templates/misc/rosdistro_cache_job.xml.em b/ros_buildfarm/templates/misc/rosdistro_cache_job.xml.em index bf1dfe514..e18148781 100644 --- a/ros_buildfarm/templates/misc/rosdistro_cache_job.xml.em +++ b/ros_buildfarm/templates/misc/rosdistro_cache_job.xml.em @@ -81,6 +81,8 @@ 'echo "# BEGIN SECTION: Run Dockerfile - rosdistro cache"', 'rm -fr $WORKSPACE/rosdistro_cache', 'mkdir -p $WORKSPACE/rosdistro_cache', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generate_rosdistro_cache/docker.cid' + diff --git a/ros_buildfarm/templates/release/deb/binarypkg_job.xml.em b/ros_buildfarm/templates/release/deb/binarypkg_job.xml.em index d2134b13f..8d7c4a429 100644 --- a/ros_buildfarm/templates/release/deb/binarypkg_job.xml.em +++ b/ros_buildfarm/templates/release/deb/binarypkg_job.xml.em @@ -131,6 +131,8 @@ but disabled since the package is blacklisted (or not whitelisted) in the config ] + ([ 'if [ ! -d "$HOME/.ccache" ]; then mkdir $HOME/.ccache; fi', ] if shared_ccache else []) + [ + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generating_docker/docker.cid' + @@ -165,6 +167,8 @@ but disabled since the package is blacklisted (or not whitelisted) in the config ] + ([ 'if [ ! -d "$HOME/.ccache" ]; then mkdir $HOME/.ccache; fi', ] if shared_ccache else []) + [ + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_build_binarydeb/docker.cid' + @@ -223,6 +227,8 @@ but disabled since the package is blacklisted (or not whitelisted) in the config @# 'echo "# END SECTION"', @# '', @# 'echo "# BEGIN SECTION: Run Dockerfile - install"', +@# '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', +@# 'export PODMAN_USERNS=keep-id', @# 'docker run' + @# ' --rm ' + @# ' --cidfile=$WORKSPACE/docker_install_binarydeb/docker.cid' + diff --git a/ros_buildfarm/templates/release/deb/sourcepkg_job.xml.em b/ros_buildfarm/templates/release/deb/sourcepkg_job.xml.em index 9d79e390b..3a21e49bd 100644 --- a/ros_buildfarm/templates/release/deb/sourcepkg_job.xml.em +++ b/ros_buildfarm/templates/release/deb/sourcepkg_job.xml.em @@ -110,6 +110,8 @@ but disabled since the package is blacklisted (or not whitelisted) in the config 'echo "# BEGIN SECTION: Run Dockerfile - generate sourcedeb"', 'rm -fr $WORKSPACE/sourcedeb', 'mkdir -p $WORKSPACE/sourcedeb/source', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_sourcedeb/docker.cid' + diff --git a/ros_buildfarm/templates/release/release_reconfigure-jobs_job.xml.em b/ros_buildfarm/templates/release/release_reconfigure-jobs_job.xml.em index c1866ef6c..f24ecf49c 100644 --- a/ros_buildfarm/templates/release/release_reconfigure-jobs_job.xml.em +++ b/ros_buildfarm/templates/release/release_reconfigure-jobs_job.xml.em @@ -113,6 +113,8 @@ if (package_names) { 'echo "# END SECTION"', '', 'echo "# BEGIN SECTION: Run Dockerfile - reconfigure jobs"', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', '# -e=GIT_BRANCH= is required since Jenkins leaves the wc in detached state', 'docker run' + ' --rm ' + diff --git a/ros_buildfarm/templates/release/release_trigger-jobs_job.xml.em b/ros_buildfarm/templates/release/release_trigger-jobs_job.xml.em index 6d52a38c6..80d863b49 100644 --- a/ros_buildfarm/templates/release/release_trigger-jobs_job.xml.em +++ b/ros_buildfarm/templates/release/release_trigger-jobs_job.xml.em @@ -122,6 +122,8 @@ if missed_jobs: 'echo "# BEGIN SECTION: Run Dockerfile - trigger jobs"', 'rm -fr $WORKSPACE/package_repo_cache', 'mkdir -p $WORKSPACE/package_repo_cache', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_trigger_jobs/docker.cid' + diff --git a/ros_buildfarm/templates/release/rpm/sync_packages_to_testing_job.xml.em b/ros_buildfarm/templates/release/rpm/sync_packages_to_testing_job.xml.em index 0035c5f94..c723693c6 100644 --- a/ros_buildfarm/templates/release/rpm/sync_packages_to_testing_job.xml.em +++ b/ros_buildfarm/templates/release/rpm/sync_packages_to_testing_job.xml.em @@ -82,6 +82,8 @@ 'echo "# BEGIN SECTION: Run Dockerfile - check sync condition"', 'rm -fr $WORKSPACE/package_repo_cache', 'mkdir -p $WORKSPACE/package_repo_cache', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_check_sync_criteria/docker.cid' + diff --git a/ros_buildfarm/templates/status/blocked_releases_page_job.xml.em b/ros_buildfarm/templates/status/blocked_releases_page_job.xml.em index 624889b8b..078339376 100644 --- a/ros_buildfarm/templates/status/blocked_releases_page_job.xml.em +++ b/ros_buildfarm/templates/status/blocked_releases_page_job.xml.em @@ -82,6 +82,8 @@ 'echo "# BEGIN SECTION: Run Dockerfile - blocked_releases page"', 'rm -fr $WORKSPACE/blocked_releases_page', 'mkdir -p $WORKSPACE/blocked_releases_page', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generate_blocked_releases_page/docker.cid' + diff --git a/ros_buildfarm/templates/status/blocked_source_entries_page_job.xml.em b/ros_buildfarm/templates/status/blocked_source_entries_page_job.xml.em index 1bd909ed0..77c789185 100644 --- a/ros_buildfarm/templates/status/blocked_source_entries_page_job.xml.em +++ b/ros_buildfarm/templates/status/blocked_source_entries_page_job.xml.em @@ -82,6 +82,8 @@ 'echo "# BEGIN SECTION: Run Dockerfile - blocked_source_entries page"', 'rm -fr $WORKSPACE/blocked_source_entries_page', 'mkdir -p $WORKSPACE/blocked_source_entries_page', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generate_blocked_source_entries_page/docker.cid' + diff --git a/ros_buildfarm/templates/status/release_compare_page_job.xml.em b/ros_buildfarm/templates/status/release_compare_page_job.xml.em index 801476884..d9dc42060 100644 --- a/ros_buildfarm/templates/status/release_compare_page_job.xml.em +++ b/ros_buildfarm/templates/status/release_compare_page_job.xml.em @@ -83,6 +83,8 @@ 'echo "# BEGIN SECTION: Run Dockerfile - compare page"', 'rm -fr $WORKSPACE/compare_page', 'mkdir -p $WORKSPACE/compare_page', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generate_compare_page/docker.cid' + diff --git a/ros_buildfarm/templates/status/release_status_page_job.xml.em b/ros_buildfarm/templates/status/release_status_page_job.xml.em index d3400db4f..b8bcea5b0 100644 --- a/ros_buildfarm/templates/status/release_status_page_job.xml.em +++ b/ros_buildfarm/templates/status/release_status_page_job.xml.em @@ -85,6 +85,8 @@ 'rm -fr $WORKSPACE/status_page', 'mkdir -p $WORKSPACE/package_repo_cache', 'mkdir -p $WORKSPACE/status_page', + '# If using Podman, change the user namespace to preserve UID. No effect if using Docker.', + 'export PODMAN_USERNS=keep-id', 'docker run' + ' --rm ' + ' --cidfile=$WORKSPACE/docker_generate_status_page/docker.cid' +