fix: correct error `'/var/run/docker.sock': No such file or directory` when `GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST` is set
This commit is contained in:
parent
7e9c085afa
commit
313a4a0a56
|
|
@ -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
|
if [[ $DOCKER_MODE != "dind-rootless" ]]; then
|
||||||
docker_sock=/var/run/docker.sock
|
if [[ $GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST == unix://* ]]; then
|
||||||
if runuser -u $act_user -- [ ! -r $docker_sock ] || runuser -u $act_user -- [ ! -w $docker_sock ]; then
|
docker_sock=${GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST#unix://}
|
||||||
docker_group=$(stat -c '%G' $docker_sock)
|
if runuser -u $act_user -- [ ! -r $docker_sock ] || runuser -u $act_user -- [ ! -w $docker_sock ]; then
|
||||||
if [[ $docker_group == "UNKNOWN" ]]; then
|
docker_group=$(stat -c '%G' $docker_sock)
|
||||||
docker_gid=$(stat -c '%g' $docker_sock)
|
if [[ $docker_group == "UNKNOWN" ]]; then
|
||||||
docker_group="docker$docker_gid"
|
docker_gid=$(stat -c '%g' $docker_sock)
|
||||||
log INFO "Creating group [$docker_group]..."
|
docker_group="docker$docker_gid"
|
||||||
addgroup --gid $docker_gid $docker_group
|
log INFO "Creating group [$docker_group]..."
|
||||||
fi
|
addgroup --gid $docker_gid $docker_group
|
||||||
|
fi
|
||||||
|
|
||||||
if ! id -nG $act_user | grep -qw "$docker_group"; then
|
if ! id -nG $act_user | grep -qw "$docker_group"; then
|
||||||
log INFO "Adding user [$act_user] to docker group [$(getent group $docker_group)]..."
|
log INFO "Adding user [$act_user] to docker group [$(getent group $docker_group)]..."
|
||||||
usermod -aG $docker_group $act_user
|
usermod -aG $docker_group $act_user
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
23
image/run.sh
23
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 [[ $DOCKER_MODE != "dind-rootless" ]]; then
|
||||||
if [[ ! -w /var/run/docker.sock || ! -r /var/run/docker.sock ]]; then
|
if [[ $GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST == unix://* ]]; then
|
||||||
docker_group=$(stat -c '%G' /var/run/docker.sock)
|
docker_sock=${GITEA_RUNNER_JOB_CONTAINER_DOCKER_HOST#unix://}
|
||||||
if [[ $docker_group == "UNKNOWN" ]]; then
|
if [[ ! -w $docker_sock || ! -r $docker_sock ]]; then
|
||||||
docker_gid=$(stat -c '%g' /var/run/docker.sock)
|
docker_group=$(stat -c '%G' $docker_sock)
|
||||||
docker_group="docker$docker_gid"
|
if [[ $docker_group == "UNKNOWN" ]]; then
|
||||||
fix_permissions=true
|
docker_gid=$(stat -c '%g' $docker_sock)
|
||||||
fi
|
docker_group="docker$docker_gid"
|
||||||
|
fix_permissions=true
|
||||||
|
fi
|
||||||
|
|
||||||
if ! id -nG act | grep -qw "$docker_group"; then
|
if ! id -nG act | grep -qw "$docker_group"; then
|
||||||
fix_permissions=true
|
fix_permissions=true
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue