diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b264196f4c218e540120962b5a219b90a1e1f193..bc8d4048edb1f307faff1cdba32600faedbd9f26 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,8 +9,8 @@ variables: CONTAINER_GALAXY_URL: "${NDIP_DOCKER_REPOSITORY}/${CI_PROJECT_PATH}" CONTAINER_GALAXY_BASE_URL: "${CONTAINER_GALAXY_URL}/base" CONTAINER_GALAXY_COMMIT_URL: "${CONTAINER_GALAXY_URL}/commit" - GALAXY_VERSION_PYTHON: 24.2.dev3+ornl - GALAXY_VERSION_DOCKER: 24.2.dev3.ornl + GALAXY_VERSION_PYTHON: 24.2.dev4+ornl + GALAXY_VERSION_DOCKER: 24.2.dev4.ornl # This import is for the func_rse_docker_* functions before_script: diff --git a/lib/galaxy/jobs/runners/__init__.py b/lib/galaxy/jobs/runners/__init__.py index 70f3b265052e0aa7bfad40d025059d3ab6aa551b..86b4e95decce81099bdace67cac420d8a1557c78 100644 --- a/lib/galaxy/jobs/runners/__init__.py +++ b/lib/galaxy/jobs/runners/__init__.py @@ -541,6 +541,7 @@ class BaseJobRunner: return set_user = user_oidc_config.get("docker_set_user", False) + set_user_groups = user_oidc_config.get("docker_set_user_groups", False) env_var = user_oidc_config.get("docker_add_user_to_env", None) if not set_user and not env_var: @@ -572,6 +573,8 @@ class BaseJobRunner: if set_user: destination_info["set_host_user"] = username + if set_user_groups: + destination_info["host_user_to_set_groups_from"] = username if env_var: destination_info["pass_host_user_to_env"] = env_var + "=" + username return diff --git a/lib/galaxy/tool_util/deps/container_classes.py b/lib/galaxy/tool_util/deps/container_classes.py index 2391d7fc7ba49d7cccbf2c653ebcbf9a33a8b25a..c38c48ba9c02929d153915bc959b6c12be370166 100644 --- a/lib/galaxy/tool_util/deps/container_classes.py +++ b/lib/galaxy/tool_util/deps/container_classes.py @@ -481,8 +481,12 @@ class DockerContainer(Container, HasDockerLikeVolumes): run_extra_arguments = self.prop("run_extra_arguments", docker_util.DEFAULT_RUN_EXTRA_ARGUMENTS) group_command = "" host_user = self.destination_info.get("set_host_user", None) + user_with_groups = self.destination_info.get("host_user_to_set_groups_from", None) if host_user: group_command = string.Template(SET_USER_GROUPS_TEMPLATE).safe_substitute(username=host_user) + elif user_with_groups: + group_command = string.Template(SET_USER_GROUPS_TEMPLATE).safe_substitute(username=user_with_groups) + if group_command: if run_extra_arguments: run_extra_arguments = run_extra_arguments + " $GROUPADD" else: