From 0237032afc7c63ea44d41238222313162e7b7d8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Drago=C8=99-Iulian=20ARGINT?=
 <dragos.argint@stud.acs.upb.ro>
Date: Sun, 30 Apr 2023 12:33:03 +0300
Subject: [PATCH] Add Tun/Tap cap to docker
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Dragoș-Iulian ARGINT <dragos.argint@stud.acs.upb.ro>
---
 local.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/local.sh b/local.sh
index 54cc53d..0c91a47 100755
--- a/local.sh
+++ b/local.sh
@@ -198,7 +198,7 @@ docker_interactive() {
     set -x
     cp -R ${ASSIGNMENT_CHECKER_DIR}/* "$tmpdir"
     
-    docker run $privileged --rm -it \
+    docker run $privileged --rm -it --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun \
             --mount type=bind,source="$SRC_DIR",target="$ASSIGNMENT_MOUNT_DIR" \
             --mount type=bind,source="$tmpdir",target="$ASSIGNMENT_CHECKER_MOUNT_DIR" \
             --workdir "$SO2_WORKSPACE" \
@@ -265,7 +265,7 @@ checker_main() {
     # In your checker script if you must use absolute paths please use $CI_PROJECT_DIR to reference the location of your directory,
     # otherwise stick to relative paths.
     # It is guaranteed that the current working directory in which checker.sh will run is  $CI_PROJECT_DIR/checker.
-    docker run $privileged --rm \
+    docker run $privileged --rm --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun \
             --mount type=bind,source="$tmpdir",target="$MOUNT_PROJECT_DIRECTORY" \
             "$image_name" /bin/bash -c "rm -rf /usr/local/bin/bash; cd \"$MOUNT_PROJECT_DIRECTORY\"; \"$MOUNT_PROJECT_DIRECTORY/checker/checker.sh\" \"${script_args[@]}\"" # remove bash middleware script
 
-- 
GitLab