From 1a611dc73018fe9b55fc924220340c79f4f06704 Mon Sep 17 00:00:00 2001 From: David Hiendl Date: Tue, 5 Dec 2023 14:57:30 +0100 Subject: [PATCH] first commit --- .editorconfig | 19 +++++++++++++++++++ .gitignore | 2 ++ action.yml | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 action.yml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..fe90d80 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +charset=utf-8 +end_of_line=lf +trim_trailing_whitespace=true +insert_final_newline = true +indent_style=space +indent_size=2 + +[*.{yaml,yml}] +indent_style = space +indent_size = 2 + +[Makefile] +indent_style = tab + +[Dockerfile] +indent_style = space diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d01c727 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +**/.idea/ +node_modules/ diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..ba945ea --- /dev/null +++ b/action.yml @@ -0,0 +1,44 @@ +name: 'docker-fix-socket-perm' +description: 'fix docker host socket permissions' + +inputs: + socket-path: + required: true + description: "location of the docker socket" + default: '/var/run/docker.sock' + workaround-group: + required: true + description: "name of the workaround group to be created (if necessary)" + default: 'hostdocker' + +runs: + using: "composite" + steps: + - shell: bash + run: | + SOCK_OWNER_GID=$(stat -c %g ${{ inputs.socket-path }}) + echo "${{ inputs.socket-path }} is owned by gid=$SOCK_OWNER_GID" + + RUNNING_AS_USER=$(whoami) + echo "${{ running as user: $RUNNING_AS_USER }}" + + SUDO_PREFIX="" + if [[ "$RUNNING_AS_USER" != "root" ]]; then + echo "current user is not sudo, assuming sudo is required" + SUDO_PREFIX="sudo" + fi + + if getent group $SOCK_OWNER_GID | grep -q "$RUNNING_AS_USER"; then + echo "User is already a member of $SOCK_OWNER_GID" + exit 0 + fi + + if grep -q -E ":$SOCK_OWNER_GID:" /etc/group; then + echo "Group for gid=$SOCK_OWNER_GID already exists, adding user to it" + $SUDO_PREFIX usermod -aG $(getent group $SOCK_OWNER_GID | cut -d: -f1) $RUNNING_AS_USER + exit 0 + fi + + echo "Group for gid=$SOCK_OWNER_GID does not exist, creating workaround group: ${{ input.workaround-group }} + $SUDO_PREFIX groupadd -g $SOCK_OWNER_GID ${{ input.workaround-group }} \ + $SUDO_PREFIX usermod -aG ${{ input.workaround-group }} $RUNNING_AS_USER