diff --git a/image/fix_permissions.sh b/image/fix_permissions.sh index 139459a..c9e60ad 100644 --- a/image/fix_permissions.sh +++ b/image/fix_permissions.sh @@ -43,22 +43,24 @@ fi ################################################################# -# ensure act user has read/write access to /var/run/docker.sock +# ensure act user has read/write access to docker socket in GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST ################################################################# if [[ $DOCKER_MODE != "dind-rootless" ]]; then - docker_sock=/var/run/docker.sock - if runuser -u $act_user -- [ ! -r $docker_sock ] || runuser -u $act_user -- [ ! -w $docker_sock ]; then - docker_group=$(stat -c '%G' $docker_sock) - if [[ $docker_group == "UNKNOWN" ]]; then - docker_gid=$(stat -c '%g' $docker_sock) - docker_group="docker$docker_gid" - log INFO "Creating group [$docker_group]..." - addgroup --gid $docker_gid $docker_group - fi + if [[ $GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST == unix://* ]]; then + docker_sock=${GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST#unix://} + if runuser -u $act_user -- [ ! -r $docker_sock ] || runuser -u $act_user -- [ ! -w $docker_sock ]; then + docker_group=$(stat -c '%G' $docker_sock) + if [[ $docker_group == "UNKNOWN" ]]; then + docker_gid=$(stat -c '%g' $docker_sock) + docker_group="docker$docker_gid" + log INFO "Creating group [$docker_group]..." + addgroup --gid $docker_gid $docker_group + fi - if ! id -nG $act_user | grep -qw "$docker_group"; then - log INFO "Adding user [$act_user] to docker group [$(getent group $docker_group)]..." - usermod -aG $docker_group $act_user + if ! id -nG $act_user | grep -qw "$docker_group"; then + log INFO "Adding user [$act_user] to docker group [$(getent group $docker_group)]..." + usermod -aG $docker_group $act_user + fi fi fi fi diff --git a/image/run.sh b/image/run.sh index 7b2c26a..5713a3b 100644 --- a/image/run.sh +++ b/image/run.sh @@ -104,19 +104,22 @@ fi ################################################################# -# check if act user has read/write access to /var/run/docker.sock +# check if act user has read/write access to docker socket in GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST ################################################################# if [[ $DOCKER_MODE != "dind-rootless" ]]; then - if [[ ! -w /var/run/docker.sock || ! -r /var/run/docker.sock ]]; then - docker_group=$(stat -c '%G' /var/run/docker.sock) - if [[ $docker_group == "UNKNOWN" ]]; then - docker_gid=$(stat -c '%g' /var/run/docker.sock) - docker_group="docker$docker_gid" - fix_permissions=true - fi - - if ! id -nG act | grep -qw "$docker_group"; then - fix_permissions=true + if [[ $GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST == unix://* ]]; then + docker_sock=${GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST#unix://} + if [[ ! -w $docker_sock || ! -r $docker_sock ]]; then + docker_group=$(stat -c '%G' $docker_sock) + if [[ $docker_group == "UNKNOWN" ]]; then + docker_gid=$(stat -c '%g' $docker_sock) + docker_group="docker$docker_gid" + fix_permissions=true + fi + + if ! id -nG act | grep -qw "$docker_group"; then + fix_permissions=true + fi fi fi fi