cilium

Форк
0
/
dockergroupcheck.go 
50 строк · 1.1 Кб
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright Authors of Cilium
3

4
package main
5

6
import (
7
	"fmt"
8
	"os/user"
9
	"runtime"
10
)
11

12
// A dockerGroupCheck checks that the current user is in the docker group.
13
type dockerGroupCheck struct{}
14

15
func (dockerGroupCheck) Name() string {
16
	return "docker-group"
17
}
18

19
func (dockerGroupCheck) Run() (checkResult, string) {
20
	if runtime.GOOS != "linux" {
21
		return checkSkipped, "docker group only used on linux"
22
	}
23

24
	currentUser, err := user.Current()
25
	if err != nil {
26
		return checkFailed, err.Error()
27
	}
28

29
	groupIDs, err := currentUser.GroupIds()
30
	if err != nil {
31
		return checkFailed, err.Error()
32
	}
33

34
	dockerGroup, err := user.LookupGroup("docker")
35
	if err != nil {
36
		return checkFailed, err.Error()
37
	}
38

39
	for _, groupID := range groupIDs {
40
		if groupID == dockerGroup.Gid {
41
			return checkOK, fmt.Sprintf("user %s in docker group", currentUser.Username)
42
		}
43
	}
44

45
	return checkError, fmt.Sprintf("user %s not in docker group", currentUser.Username)
46
}
47

48
func (dockerGroupCheck) Hint() string {
49
	return `Run "sudo usermod $USER --append --group docker", then log out and back in.`
50
}
51

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.